Back to skill

Security audit

diffmanifests

Security checks for vulnerabilities and agentic risk

Overview

The skill is a straightforward manifest comparison helper, with manageable risks around credential handling and an unpinned pip install.

Install in an isolated environment, pin or verify the `diffmanifests` package if possible, use least-privilege API tokens instead of passwords, restrict permissions on any populated config file, and avoid sharing reports or logs that may reveal private repository metadata.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:9
Finding
Unpinned Third-Party Package Installation Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 9-15 **Vulnerability Type**: Unpinned and unverified third-party dependency installation **Risk Level**: Medium **Complete Code Snippet**: ```markdown ## Installation ```bash pip install diffmanifests ``` Upgrade: `pip install diffmanifests --upgrade` ``` ### Technical Analysis The skill instructs users to install or upgrade `diffmanifests` from the package index without specifying an exact version, validating package hashes, using a lock file, or identifying a reviewed source artifact. Consequently, the package resolved during installation can differ from the version that existed when this skill was audited. Python package installation may execute package build or installation logic. The installed CLI subsequently receives paths to local manifest files and a configuration format that supports Gerrit and Gitiles credentials. If the package, a release artifact, a maintainer account, or a transitive dependency is compromised, attacker-controlled code could execute under the installing user's account. The artifact does not contain the package implementation, and there is no evidence that the currently published package is malicious. The vulnerability is the unsafe, mutable dependency acquisition process rather than confirmed malicious behavior in `diffmanifests`. ### Attack Path 1. An attacker compromises the package publisher account, package distribution channel, release artifact, or an unpinned transitive dependency. 2. The attacker publishes a malicious package version that remains compatible with the unrestricted installation command. 3. A user follows the skill instructions and runs `pip install diffmanifests` or the upgrade command. 4. `pip` resolves and installs the attacker-controlled release without checking a project-supplied version pin or cryptographic hash. 5. Malicious installation logic or runtime code executes with the privileges of the ...[truncated 746 chars]
Remediation
## Remediation Suggestions 1. Pin `diffmanifests` to an exact, reviewed version rather than allowing the latest available release. 2. Distribute a requirements or lock file containing cryptographic hashes and install with hash enforcement, such as `pip install --require-hashes -r requirements.txt`. 3. Document the authoritative source repository and verify that the package publisher and distribution artifact correspond to that source. 4. Review and pin all transitive dependencies, not only the top-level package. 5. Install the CLI in an isolated virtual environment or sandbox under a non-privileged account. 6. Re-audit package changes before updating the pinned version. 7. Avoid exposing credentials until the installed package and its dependency chain have been verified; use narrowly scoped tokens when authentication is required.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill documentation instructs users to place Gerrit and Gitiles usernames and passwords/API tokens in a JSON config file and use them for authenticated network access, but it provides no warning about secure storage, least-privilege tokens, redaction, or where generated reports and logs may send or expose sensitive data. In an agent environment, this increases the chance of credential leakage through checked-in config files, local artifacts, prompts, logs, or outbound requests.

Static analysis

No suspicious patterns detected.