T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:17
Vulnerability Type: Unpinned third-party package installation
Risk Level: MediumVulnerable Code
bash pip install perceptronThe installed package is subsequently imported and trusted by
scripts/perceptron_cli.py:20-47:python try: import perceptron from perceptron import ( configure, config, detect, caption, ocr, ocr_html, ocr_markdown, question, perceive, annotate_image, scale_points_to_pixels, extract_points, parse_text, strip_tags, inspect_task, image, text, system, box, point, polygon, collection, agent, ) except ImportError: print("Error: perceptron SDK not installed. Run: pip install perceptron", file=sys.stderr) sys.exit(1)Technical Analysis
The documented installation command retrieves the latest package associated with the mutable
perceptronpackage name. It does not specify an exact reviewed version, verify distribution hashes, use a lockfile, or document verification of the package source and publisher.The imported dependency is security-sensitive: it receives the Perceptron API credential, processes local image files and URLs, handles prompts, and performs remote API requests. If a future package release or its publishing account were compromised, arbitrary package code could execute with the permissions of the user running the installation or CLI.
This is a supply-chain weakness rather than evidence that the current package is malicious.
Attack Path
- An attacker compromises the package publisher, release pipeline, or package repository account for
perceptron. - The attacker publishes a malicious release under the same package name.
- A user follows the documented
pip install perceptroninstruction after that release becomes current. ...[truncated 950 chars]
- An attacker compromises the package publisher, release pipeline, or package repository account for
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to an exact, reviewed version, for example:
bash python3 -m pip install "perceptron==X.Y.Z" -
Generate and publish a lockfile containing cryptographic hashes for the approved distributions.
-
Require hash verification during installation, such as:
bash python3 -m pip install --require-hashes -r requirements.txt -
Document the expected package repository, verified publisher, and approved package identity.
-
Review release notes and dependency changes before updating the pinned version.
-
Run the CLI in a least-privileged virtual environment or container with access only to required images and credentials.
-
Avoid exposing unrelated secrets or sensitive directories to the process.
-
Add automated dependency scanning and provenance verification to the release workflow.
-
