photo-metadata

Pass

Audited by Gen Agent Trust Hub on Jul 26, 2026

Risk Level: SAFE
Full Analysis
  • [COMMAND_EXECUTION]: The embed.py script automates the use of the exiftool binary. The implementation uses subprocess.run with an argument list rather than a shell string, which effectively prevents shell injection vulnerabilities. Additionally, the script uses the -- delimiter in the command-line call to ensure that filenames starting with a dash are treated as paths rather than additional options to exiftool.
  • [COMMAND_EXECUTION]: The script includes a dedicated security check to prevent path traversal. It resolves the absolute path of each target file and verifies that it resides within the intended source directory, preventing an attacker-controlled manifest from accessing or overwriting sensitive files elsewhere on the system.
  • [INDIRECT_PROMPT_INJECTION]: The skill processes user-supplied metadata from a JSON manifest. While this data is eventually embedded into image files (creating a surface for indirect injection if downstream tools interpret the metadata), the risk is low. The script acts as a pass-through utility, and the provided instructions emphasize the importance of neutral, descriptive tagging. Mandatory Evidence Chain:
  • Ingestion points: The embed.py script reads image metadata from a user-provided JSON manifest file.
  • Boundary markers: The script uses fixed tag prefixes (e.g., -IPTC:By-line=) when passing values to exiftool, ensuring that manifest content is treated as data for specific fields.
  • Capability inventory: The skill uses subprocess.run to execute exiftool, Path.mkdir to create directories, and shutil.copy2 to copy images. These are standard for its stated purpose.
  • Sanitization: The script performs path validation using Path.resolve().relative_to() to prevent traversal attacks.
Audit Metadata
Risk Level
SAFE
Analyzed
Jul 26, 2026, 01:44 PM
Security Audit — agent-trust-hub — photo-metadata