T08 · Insecure Dependencies
- Location
references/opc-ua-setup.md:58- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
references/opc-ua-setup.md:58-63,references/opc-ua-setup.md:158-161,references/opc-ua-tools.md:49-52,references/opc-ua-tools.md:59-62, andreferences/opc-ua-tools.md:87-90
Vulnerability Type: Supply-chain exposure through unpinned package installation
Risk Level: MediumVulnerable Code
references/opc-ua-setup.md:58-63:bash ### Installation ```bash pip install opcua-asyncio # Or the older version pip install opcuatext `references/opc-ua-setup.md:158-161`: ```bash ### Installation ```bash npm install node-opcuatext The same unpinned commands are repeated in `references/opc-ua-tools.md`. ### Technical Analysis The installation instructions do not specify exact dependency versions, package hashes, lockfiles, or a trusted registry. Consequently, package resolution depends on mutable registry state and the user's package-manager configuration at installation time. Running `pip install opcua-asyncio`, `pip install opcua`, or `npm install node-opcua` can select a future release that was not present during this audit. It may also select packages from an attacker-controlled registry if the local pip or npm configuration has been modified. Package installation and subsequent imports can execute package-controlled code with the privileges of the invoking user. The package names are established OPC ecosystem dependencies, and the project does not itself point to an explicitly malicious source. The risk arises from the absence of reproducible dependency constraints and integrity validation. ### Attack Path 1. An attacker compromises a named package, one of its transitive dependencies, or a package registry used by the victim. 2. Alternatively, an attacker changes the victim's pip or npm registry configuration to prioritize an attacker-controlled source. 3. The user or Agent follows the Skill's installation guidance and exe ...[truncated 845 chars]- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to a reviewed exact version, such as
opcua-asyncio==X.Y.Z,opcua==X.Y.Z, andnode-opcua@X.Y.Z. - Maintain lockfiles for supported examples and development environments.
- For Python, publish a hash-locked requirements file and install it using
pip install --require-hashes -r requirements.txt. - For Node.js, commit a reviewed lockfile and recommend
npm ciinstead of unconstrained installation. - Document the expected official package registry and warn users not to install from unknown mirrors.
- Run installations in an isolated virtual environment or container using a non-privileged account.
- Add dependency scanning and update review procedures before changing pinned versions.
- Pin every dependency to a reviewed exact version, such as
