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.jsscript uses theeval()function in thetestConnectionfunction to process ther_frame_ratefield returned byffprobe. 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 to600(owner read/write), the secrets are stored in plain text. This contradicts theSKILL.mddocumentation 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
ffprobeand 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