The main failure is loss of deterministic trust. If a tool pulls @latest or other unpinned dependencies at startup, security teams can no longer reliably predict which code will execute or which secrets that code can access. That creates a supply chain window where artifact integrity, not just source review, becomes the deciding control.
Why This Matters for Security Teams
Runtime package installs turn a developer tool into a live software supply chain decision point. Once a tool fetches unpinned dependencies at startup, the security team loses certainty about what code is executing, what transitive packages it brings in, and whether that code has changed since review. That matters even more when the tool can reach secrets, internal APIs, or agent credentials. NIST’s SP 800-53 Rev 5 Security and Privacy Controls makes configuration and software integrity a first-class control concern, not an afterthought. In NHI terms, the issue is not only code trust but credential exposure paths, which is why NHIMG’s research on LiteLLM PyPI package breach is directly relevant. The practical risk is that a benign-looking startup path becomes the point where attacker-controlled code can inherit the tool’s identity, permissions, and environment. In practice, many security teams only discover this exposure after a package update has already widened the blast radius rather than through intentional dependency governance.
How It Works in Practice
The failure mode is usually simple: a tool starts, resolves packages dynamically, and executes whatever version is current at that moment. If the dependency is unpinned, there is no reproducible artifact boundary. That breaks deterministic builds, makes incident response harder, and undermines any approval process that assumed the reviewed package was the one that would actually run. For AI developer tools, this is especially dangerous because the tool may also load prompt templates, connectors, API clients, or credential helpers during the same startup sequence.
Operationally, teams should treat package resolution as an access decision, not just a build step. A safer pattern is to pin exact versions and hashes, verify against a trusted lockfile, and block runtime network fetches unless there is a documented exception. For higher-risk environments, the package set should be materialized in CI, scanned, and promoted as an immutable artifact. That aligns with the control intent behind NIST supply chain guidance and with the broader dependency integrity concerns highlighted in Code Formatting Tools Credential Leaks, where seemingly low-risk developer tooling becomes a path to secret exposure. It also fits current secret-management concerns in The State of Secrets in AppSec, which shows how often developer behavior and secret sprawl undermine strong policy on paper. A useful implementation pattern is to pair package pinning with workload-scoped credentials so the tool only has the minimum identity needed for the session, then revoke those credentials when the task ends. These controls tend to break down in ad hoc development environments with unrestricted internet access and shared caches because the tool can silently refresh or swap dependencies outside the approved pipeline.
Common Variations and Edge Cases
Tighter dependency control often increases developer friction, requiring organisations to balance reproducibility against update speed. The main tradeoff is between blocking unknown code and keeping pace with legitimate security fixes. Best practice is evolving here, especially for agentic tools that assemble toolchains on the fly. There is no universal standard for runtime package governance yet, but current guidance suggests treating any live dependency resolution as a privileged action.
Edge cases matter. Some teams pin versions but still allow floating indirect dependencies, which preserves drift even when top-level packages look stable. Others rely on private registries but fail to sign or verify artifacts, so a compromised registry or mirror still changes what executes. A further wrinkle is that AI developer tools may invoke plugins, adapters, or model-specific utilities after launch, meaning the initial install is only one part of the trust chain. In those environments, the safer approach is to combine pinned manifests, artifact hashing, restricted egress, and monitoring for unexpected package fetches. If the tool is also handling secrets or agent credentials, the consequence of a bad install is not just software tampering but immediate privilege exposure. The problem is most severe when runtime installs are allowed on systems that already have broad network reach and long-lived credentials, because a single unpinned pull can become both a supply chain compromise and a secrets incident.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10, OWASP Agentic AI Top 10 and CSA MAESTRO address the attack and risk surface, while NIST AI RMF and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-03 | Unpinned installs can expose or rotate NHI secrets outside approved controls. |
| OWASP Agentic AI Top 10 | A2 | Dynamic package loading can alter agent behavior and expand tool execution risk. |
| CSA MAESTRO | GOV-3 | Supply chain trust and runtime integrity are core MAESTRO governance concerns. |
| NIST AI RMF | AI RMF highlights governance for reliability, security, and traceability in AI systems. | |
| NIST CSF 2.0 | PR.DS-6 | Integrity of software and data is directly impacted by unpinned runtime packages. |
Pin runtime dependencies and revoke any secrets exposed during dynamic package resolution.
Related resources from NHI Mgmt Group
- What breaks when package trust and developer tooling are treated as separate risks?
- What breaks when nvm trusts mirror metadata in developer and CI environments?
- What breaks when AI assistants are used for vulnerability remediation without scanner integration?
- What breaks when a malicious AI coding tool is allowed to proxy developer API traffic?