camsnap

Fail

Audited by Gen Agent Trust Hub on Oct 18, 2026

Risk Level: HIGHDYNAMIC_EXECUTIONCREDENTIALS_UNSAFEINDIRECT_PROMPT_INJECTION
Full Analysis
  • [DYNAMIC_EXECUTION]: The camsnap.js script uses the eval() function in the testConnection function to process the r_frame_rate field returned by ffprobe. This data is extracted directly from the metadata of external RTSP camera streams. A compromised or malicious camera could provide a specially crafted string that executes arbitrary JavaScript code when parsed, leading to a remote code execution (RCE) vulnerability.
  • [CREDENTIALS_UNSAFE]: The skill manages camera authentication by storing usernames and passwords in a local file at ~/.camsnap_credentials. While the script correctly sets file permissions to 600 (owner read/write), the secrets are stored in plain text. This contradicts the SKILL.md documentation which claims passwords are base64-encoded, potentially misleading users about the security of their stored credentials.
  • [INDIRECT_PROMPT_INJECTION]: The skill acts as a bridge for untrusted data from external network sources (IP cameras) to enter the agent's context.
  • Ingestion points: Metadata such as codec names, frame rates, and stream titles are pulled from RTSP streams via ffprobe and returned to the agent as JSON.
  • Boundary markers: The output does not use any delimiters or protective markers to warn the agent that the stream metadata is untrusted external content.
  • Capability inventory: The skill has the ability to execute shell commands (via ffmpeg/ffprobe), write files, and manage camera credentials.
  • Sanitization: There is no sanitization or validation performed on the strings returned from the camera streams before they are passed to the agent or processed by internal functions.
Recommendations
  • AI detected serious security threats
Audit Metadata
Risk Level
HIGH
Analyzed
Oct 18, 2026, 05:24 PM