diff --git a/src/cleveragents/application/services/llm_actors.py b/src/cleveragents/application/services/llm_actors.py index 1ff09538f..2180ece1d 100644 --- a/src/cleveragents/application/services/llm_actors.py +++ b/src/cleveragents/application/services/llm_actors.py @@ -514,6 +514,12 @@ class LLMExecuteActor: ) continue if rel.startswith(".." + os.sep) or rel == "..": + logger.warning( + "Rejected path traversal in LLM output", + path=path, + resolved=full_path, + ) + continue os.makedirs(os.path.dirname(full_path), exist_ok=True) try: with open(full_path, "w") as fh: diff --git a/src/cleveragents/tool/path_mapper.py b/src/cleveragents/tool/path_mapper.py index 5684379d9..86459bd5d 100644 --- a/src/cleveragents/tool/path_mapper.py +++ b/src/cleveragents/tool/path_mapper.py @@ -12,7 +12,6 @@ Based on issue #515 — container-aware tool execution and I/O forwarding. from __future__ import annotations -import os import posixpath from dataclasses import dataclass