@lmdelm-dev/bmo
BMO - a GameBoy-style terminal for Linux and Windows. Python (tkinter) app bootstrapped by npm/bun.
This report shows the evidence for @lmdelm-dev/bmo@0.3.0, the only known version.
AI Security Review
scanned 3mo ago · by lpm-firewall-aiThe behavior is explicit rather than stealthy, but it is still an unconsented postinstall remote-code bootstrap with broad host mutation and no content pinning or verification. This meets the firewall block threshold for concrete install-time execution risk.
Decision evidence
public snapshot- package.json runs `node cli.js --install` at postinstall.
- cli.js downloads the mutable GitHub `main` tarball into `dist/` without integrity verification.
- Postinstall invokes remote installers through `curl | bash` for opencode and Ollama.
- Postinstall runs privileged OS package-manager commands and user-level pip installs.
- cli.js creates a desktop launcher and installs a font in user directories.
- No credential harvesting, secret reads, or exfiltration code found.
- No obfuscation, eval, dynamic JavaScript loading, or host-fingerprinting gate found.
- Commands and persistence are openly described in README.md.
Source & flagged code
6 flagged · loading sourcePackage defines install-time lifecycle scripts.
package.jsonView on unpkgInstall-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgSource downloads or fetches remote code and executes it.
Findings
Affected versions and remediation
This report applies to @lmdelm-dev/bmo@0.3.0.
The versions list below shows the verdict for each recorded version.
- Avoid installing @lmdelm-dev/bmo@0.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.