T08 · Insecure Dependencies
- Location
SKILL.md:78- Finding
Unpinned Globally Installed Executable Dependency
- Content
View full analysis
&1 | head -1` should not look like the v1 single-shot CLI. ``` ### Technical Analysis The skill directs the operator to install `flashrev-ai-mailer` globally without an exact version, package-lock file, integrity hash, signature, or other provenance check. Consequently, `npm` resolves and installs whichever release is current when the command runs. The executable implementation is not included in the audited project. Its behavior—including secret handling, local file access, network destinations, and enforcement of confirmation gates—therefore cannot be independently verified from this repository. Checking only that the installed CLI appears to be version 2.x does not establish package integrity or prevent a compromised release from executing. Because this is a global installation, package lifecycle scripts and the resulting executable run with the operator's local privileges. The process may also receive `FLASHREV_API_KEY` and access campaign data, prospect contact information, mailbox metadata, and files available to the operator. ### Attack Path 1. An attacker compromises the npm publisher account, package repository, release pipeline, or a transitive dependency. 2. The attacker publishes a malicious version under the expected package name. 3. The operator follows the documented `npm install -g flashrev-ai-mailer` command. 4. npm installs the mutable latest package and may execute its lifecycle scripts. 5. The malicious package runs with the operator's privileges. 6. On later invocation, it can read the FlashRev API key from the environment, inspect local `.flashrev/` state, access operator-re ...[truncated 700 chars]- Remediation
View remediation
