Caveat verdict

agent-security-scanner

88
🟢 Trusted
No high-risk patterns surfaced by the deep scan — automated capability review, not behavioral proof.

Receives external input AND executes processes

This is a legitimate multi-language AI agent security scanner with documented AST analysis, intent detection, and LLM verification capabilities; the lingshun daemon and webhook configs are for monitoring/alerting consistent with its stated purpose.

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.

0
security
100
transparency
100
maintenance

What it does

These are capability combinations: each listed behavior occurs in the skill, but Caveat detects co-occurrence — it does not verify that one flows into another. Read the code to confirm a live chain.

Capability combination critical

Receives external input AND executes processes — the shape of a command & control channel

LLM05 · LLM06 · ASI10

Capability combination high

Installs packages AND executes processes — opaque dependency chain with execution

LLM03 · ASI04

Permission integrity

Installs packages at runtime — transitive dependencies are not auditable

package_install

Findings (23)

Pattern match critical

Accesses sensitive system files

docs/CAPABILITIES.md · code · /etc/passwd

Pattern match critical

Reads /proc/self/environ — dumps all environment variables

docs/CAPABILITIES.md · code · /proc/self/environ

Pattern match high

Pipe to python — executes piped content as Python code

SKILL.md · prose · downgraded · | Python

Pattern match high

Accesses .ssh directory

docs/CAPABILITIES.md · code · .ssh/

Pattern match high

Uses eval() — can execute arbitrary code

docs/CAPABILITIES.md · prose · downgraded · eval(

Pattern match high

Dynamic __import__('os') — Python OS command execution

src/engine/smart_pattern_detector.py · prose · downgraded · __import__('os')

Pattern match high

Bash /dev/tcp — raw TCP connection via shell

src/engine/smart_pattern_detector.py · prose · downgraded · /dev/tcp/

Pattern match high

Accesses AWS credentials file

src/multi_language_scanner_v4.py · prose · downgraded · ~/.aws/credentials

Pattern match medium

References webhook/callback URL

SKILL.md · code · webhook_url

Pattern match medium

Uses exec() — may execute shell commands

docs/CAPABILITIES.md · prose · downgraded · exec(

Pattern match medium

os.system/popen — direct OS command execution

docs/CAPABILITIES.md · prose · downgraded · os.system(

Pattern match medium

subprocess execution — runs system commands from Python

scanner_cli.py · prose · downgraded · subprocess.run(

Pattern match medium

subprocess with shell=True — command injection vector

src/engine/smart_pattern_detector.py · prose · downgraded · subprocess.Popen(": 12, "subprocess.run(": 6, "subprocess.call(": 6, "sh

Pattern match medium

setuid — privilege escalation mechanism

src/engine/smart_pattern_detector.py · prose · downgraded · setuid

Pattern match medium

Clears shell history — may hide tracks

src/engine/smart_pattern_detector.py · prose · downgraded · history -c

Pattern match medium

References child_process — can spawn system processes

src/engine/smart_pattern_detector.py · prose · downgraded · child_process

Pattern match medium

References SSH/GPG private keys

src/multi_language_scanner_v4.py · prose · downgraded · ssh_key

Pattern match medium

Accesses cloud provider credentials

src/multi_language_scanner_v4.py · prose · downgraded · ~/.aws

Pattern match low

pip3 install — installs Python packages at runtime

src/benchmark_full_scan.py · prose · downgraded · pip3 install

Pattern match low

Python urllib.request — network access

src/engine/smart_pattern_detector.py · prose · downgraded · urllib.request

Pattern match low

Python shutil file operation — copies/moves/deletes files

src/engine/smart_pattern_detector.py · prose · downgraded · shutil.rmtree(

Pattern match low

Python os.getenv — reads environment variable

src/llm_analyzer.py · prose · downgraded · os.getenv(

Pattern match low

Base64 encoding/decoding

src/llm_analyzer.py · prose · downgraded · base64_decode

Why the tier is capped

Execution sink present in raw bytes (Hard Floor: class B/D/E). 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.

package_installnetwork_inprocess_execdata_encoding
Check another skill Browse the registry Auditing your own skills or configs? Use the API