droid@1.3.0
Factory Droid CLI - AI-powered software engineering agent
AI Security Review
scanned 19h ago · by lpm-firewall-aiThe automatic install fallback sends NPM_TOKEN based on a substring hostname check and uses a tarball URL supplied by package metadata. This creates a concrete path for disclosing npm credentials to a lookalike host.
Decision evidence
public snapshot- The postinstall hook runs install.js automatically.
- When NPM_TOKEN is set, install.js attaches it as a Bearer token to any request whose hostname contains “npmjs.org,” rather than checking that the hostname is the npm registry.
- The fallback download takes its tarball URL from npm package metadata and requests it through the same function, allowing a crafted hostname such as evilnpmjs.org to receive NPM_TOKEN.
- The fallback download runs only when the platform binary is missing from optional dependencies.
- The intended install behavior is to download the platform-specific CLI binary from npm and link it into the package.
Source & flagged code
9 flaggedPackage defines install-time lifecycle scripts.
package.jsonView on unpkgInstall-time source downloads a native archive from a fixed external host without transport verification, extracts it, and installs an executable payload.
package.jsonView on unpkg · L9Install-time lifecycle script is not statically allowlisted and needs review.
Findings
Affected versions and remediation
This report applies to droid@1.3.0.
See all versions of droid for other recorded verdicts.
- Avoid installing droid@1.3.0. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.