From 152ed7a744d2e721c05ab726b2016b97deba00d4 Mon Sep 17 00:00:00 2001 From: HAL9000 Date: Fri, 15 May 2026 06:05:35 +0000 Subject: [PATCH] fix(security): fix file_tools.py validate_path startswith bypass #7478 ISSUES CLOSED: #7478 --- src/cleveragents/application/services/llm_actors.py | 6 ++++++ src/cleveragents/tool/path_mapper.py | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) 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