Tainted flow: 'skill_path' from input (line 296, user input) → open (file write)
Medium
- Category
- Data Flow
- Content
goal=data['goal'], ) skill_path = os.path.join(skill_dir, 'SKILL.md') with open(skill_path, 'w', encoding='utf-8') as f: f.write(skill_content) created_files.append(('SKILL.md', 'Bộ não chính của skill'))- Confidence
- 98% confidence
- Finding
- The script constructs `skill_dir` directly from user-controlled `name` and optional `output_dir` and then writes `SKILL.md` beneath it without constraining the final path to an approved base directory. An attacker can supply path traversal values such as `../../...` or absolute paths to create or overwrite files outside the intended workspace, which is a real arbitrary file-write issue for any caller that passes untrusted input to this utility.
