T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Unpinned and Unaudited Runtime Dependency Executes Outside the Reviewed Codebase
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:47-53,scripts/extract.py:10-17,scripts/fill.py:12-19, andscripts/list_backends.py:6-13
Vulnerability Type: Third-party software supply-chain exposure
Risk Level: MediumVulnerable Code
SKILL.md:47-53:bash ## Setup (once per workspace) The skill scripts call the `oc-pdf-filler` Python package. Install it first: ```bash pip install "oc-pdf-filler[all]" # or, if working from the source repo: pip install -e ".[all]"text `scripts/extract.py:10-17`: ```python try: from oc_pdf_filler.cli import main except ImportError: sys.stderr.write( "oc-pdf-filler is not installed.\n" "Install it with: pip install 'oc-pdf-filler[all]'\n" ) sys.exit(2)scripts/fill.py:12-19:python try: from oc_pdf_filler.cli import main except ImportError: sys.stderr.write( "oc-pdf-filler is not installed.\n" "Install it with: pip install 'oc-pdf-filler[all]'\n" ) sys.exit(2)scripts/list_backends.py:6-13:python try: from oc_pdf_filler.cli import main except ImportError: sys.stderr.write( "oc-pdf-filler is not installed.\n" "Install it with: pip install 'oc-pdf-filler[all]'\n" ) sys.exit(2)Technical Analysis
The supplied project does not contain the implementation of
oc_pdf_filler. Its executable scripts are thin wrappers that import and invokeoc_pdf_filler.cli.main, while the documentation directs users to install the package and all optional dependencies from the configured Python package index.The dependency is not pinned to an exact audited version, no package hashes are supplied, and no lockfile or verified artifact is included. The
[all]extra can also expand the set of installed transitive dependencies. As a result, the code executed by this Skill may differ over time from the code that was reviewed.This creates a software supply-chain risk. A compromised packa ...[truncated 1929 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
oc-pdf-fillerto a specific version that has been independently audited, for example by using an exact==constraint rather than an unconstrained package name. - Generate and commit a dependency lockfile containing exact versions for all direct and transitive dependencies.
- Require cryptographic hashes during installation, such as with a hash-locked requirements file and
pip install --require-hashes. - Vendor the required implementation into the reviewed project or include the complete source as a verifiable submodule so executable behavior is available during audits.
- Separate optional backends into explicitly selected dependency groups rather than installing
[all]by default. - Build dependencies in an isolated environment and install from an approved internal package repository or signed artifact store.
- Run PDF processing in a least-privilege sandbox with restricted filesystem access, no unnecessary credentials, and outbound network access disabled unless explicitly required.
- Add automated dependency scanning, release provenance verification, and a controlled update process that requires review before dependency versions change.
- Document the exact expected package version and checksum in
SKILL.md, and ensure all wrapper error messages recommend the same verified installation command.
- Pin
