Caveat verdict
permission-manifest-guard
Analyzes skill directories for declared vs. observed permissions and generates a local manifest report; entirely local static analysis with no network access or credential use.
⚠ 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 (23)
Uses eval() — can execute arbitrary code
src/classify.ts · prose · downgraded · eval(
Dynamic Function constructor — equivalent to eval()
src/classify.ts · prose · downgraded · new Function(
Accesses sensitive system files
tests/classify.test.ts · prose · downgraded · /etc/passwd
Recursive delete from root or home — destructive command
tests/classify.test.ts · prose · downgraded · rm -rf /
References sudo — requests elevated privileges
src/classify.ts · prose · downgraded · sudo
References child_process — can spawn system processes
src/classify.ts · prose · downgraded · child_process
Dynamic import() — loads module at runtime
src/extract.ts · prose · downgraded · import('
Uses exec() — may execute shell commands
src/extract.ts · prose · downgraded · exec(
Uses spawn() — can execute external programs
tests/binary-extraction.test.ts · prose · downgraded · spawn(
apt-get install — installs system packages
tests/classify.test.ts · prose · downgraded · apt-get install
HTTP request to bare IP address — common in malicious payloads
tests/extract.integration.test.ts · prose · downgraded · http://127.0.0.1
Accesses .ssh directory
tests/extract.test.ts · prose · downgraded · .ssh/
Reads files from sensitive system paths
tests/extract.test.ts · prose · downgraded · readFileSync('/etc
subprocess execution — runs system commands from Python
tests/unit/extract.test.ts · prose · downgraded · subprocess.run(
os.system/popen — direct OS command execution
tests/unit/extract.test.ts · prose · downgraded · os.system(
Python os.environ.get — reads environment variable
src/extract.ts · prose · downgraded · os.environ.get(
Python os.getenv — reads environment variable
src/extract.ts · prose · downgraded · os.getenv(
Sets world-executable permissions
tests/classify.test.ts · prose · downgraded · chmod 777
Changes file ownership
tests/classify.test.ts · prose · downgraded · chown
Popular HTTP library — network access
tests/classify.test.ts · prose · downgraded · got
Opens WebSocket connection
tests/classify.test.ts · prose · downgraded · WebSocket
Accesses sensitive environment variables
tests/env-var-detection.test.ts · prose · downgraded · process.env.STRIPE_SECRET_KEY
pip3 install — installs Python packages at runtime
tests/extract.test.ts · prose · downgraded · pip3 install
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class B/D). 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.