Caveat verdict

mal-updater

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

MyAnimeList sync tool for Crunchyroll/HIDIVE that uses MAL OAuth authentication; straightforward media tracking integration with provider-specific credentials managed outside version control.

⚠ 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.

20
security
100
transparency
70
maintenance

Findings (9)

Pattern match high

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

scripts/run_health_check_cycle.sh · prose · downgraded · __import__("os")

Pattern match high

Possible hardcoded credential

src/mal_updater/crunchyroll_auth.py · prose · downgraded · TOKEN = "dC1rZGdwMmg4YzNqdWI4Zm4wZnE6eWZMRGZNZnJZdktYaDRKWFMxTEVJMmNDcXUxdjVXYW4

Pattern match medium

Instructs covert action — may act without user awareness

references/DECISIONS.md · prose · downgraded · silently

Pattern match medium

HTTP request to bare IP address — common in malicious payloads

references/MAL_OAUTH.md · prose · downgraded · http://127.0.0.1

Pattern match medium

subprocess execution — runs system commands from Python

scripts/run_health_check_cycle.sh · prose · downgraded · subprocess.run(

Pattern match low

Python os.getenv — reads environment variable

src/mal_updater/config.py · prose · downgraded · os.getenv(

Pattern match low

Python urllib.request — network access

src/mal_updater/mal_client.py · prose · downgraded · urllib.request

Pattern match low

Python shutil file operation — copies/moves/deletes files

tests/test_health_check_cycle_script.py · prose · downgraded · shutil.copytree(

Pattern match low

Python os.environ.get — reads environment variable

tests/test_health_check_cycle_script.py · prose · downgraded · os.environ.get(

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?

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