Caveat verdict
kindle-download
The skill automates downloading ebooks from Z-Library (a known piracy site) and emailing them to a Kindle device, requiring storage of Z-Library account credentials; while a legal disclaimer is included, the primary use case facilitates copyright infringement and stores sensitive credentials in an auth.json file.
⚠ Flagged for review — coarse, uncorroborated signal, not a confirmed exploit. Review the config yourself before installing.
Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.
Findings (16)
Pipe-to-shell pattern (curl | sh) — supply chain attack vector
INSTALL.md · code · curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
Pipe to bash — executes piped content as shell commands
INSTALL.md · code · | bash
Possible hardcoded credential
INSTALL.md · code · PASSWORD="your_zlibrary_password
References sudo — requests elevated privileges
INSTALL.md · code · sudo
apt-get install — installs system packages
INSTALL.md · code · apt-get install
Accesses shell history/config
INSTALL.md · code · ~/.zshrc
HTTP request to bare IP address — common in malicious payloads
INSTALL.md · code · http://127.0.0.1
Pipe to python — executes piped content as Python code
INSTALL.md · prose · downgraded · | Python
Uses eval() — can execute arbitrary code
SECURITY.md · prose · downgraded · eval(
pip3 install — installs Python packages at runtime
INSTALL.md · code · pip3 install
setuid — privilege escalation mechanism
scripts/workflow.js · prose · downgraded · setuid
Uses exec() — may execute shell commands
SECURITY.md · prose · downgraded · exec(
Sets world-executable permissions
SECURITY.md · code · chmod 700
Accesses system credential store
SECURITY.md · prose · downgraded · Keychain
Python os.environ.get — reads environment variable
scripts/send_kindle.py · prose · downgraded · os.environ.get(
Accesses sensitive environment variables
scripts/workflow.js · prose · downgraded · process.env.KINDLE_SMTP_AUTH
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class A). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.
Permissions & capabilities
No declared permissions — minimal attack surface.
Is this flag fair?
Thanks — recorded.