T09 · Insecure Skill Coding Practices
- Location
skill.py:48- Finding
Unvalidated LLM Output Persisted as Actionable IoT Timeline Instructions
- Content
View full analysis
{kf.get('device_id')}") print(f" Action: {kf.get('rendered_state')} ({kf.get('reason_nlp')})") tracks_db = load_json(TRACKS_FILE) if "scheduled_tracks" not in tracks_db: tracks_db["scheduled_tracks"] = [] tracks_db["scheduled_tracks"].append(track_result) save_json(TRACKS_FILE, tracks_db) ``` ### Technical Analysis The skill embeds user-controlled natural-language input and hardware-mount metadata into a single LLM prompt. Both sources must be treated as untrusted because the interactive user controls the intent, while local processes o ...[truncated 2911 chars]- Remediation
View remediation
