Skip to content

docs: publish fifth public scan write-up (MervinPraison/PraisonAI)#15

Merged
elfrost merged 1 commit into
mainfrom
feat/fifth-public-scan-praisonai
May 16, 2026
Merged

docs: publish fifth public scan write-up (MervinPraison/PraisonAI)#15
elfrost merged 1 commit into
mainfrom
feat/fifth-public-scan-praisonai

Conversation

@elfrost
Copy link
Copy Markdown
Owner

@elfrost elfrost commented May 16, 2026

Summary

Fifth public scan: MervinPraison/PraisonAI (7.7k★) at `68035af`.

489 raw findings → 401 after `--ignore-file` — largest scan yet, also the first validation of the path-suppression feature on a fresh target. 5 real best-practice items curated, ~390 FPs or by-design patterns.

Highlights

  • `surrealdb_vector.py` defaults to `root/root` credentials (best practice: fail-fast on missing override)
  • `port.py` `shell=True` with list — and the pipe at `:79` doesn't actually work (Windows quirk)
  • 2 workflow `${{ inputs.* }}` shell-injection patterns (same class as gptme #2398, which got fixed in #2399)
  • 3 `curl | bash` install patterns
  • ~220 SQL f-string-into-identifier findings (same class as Upsonic; gated by config but pattern is brittle)

Cross-references

Post links back to the gptme, Upsonic, and openllmetry posts to show the recurring patterns across the series.

Next step after merge

File a courtesy issue on MervinPraison/PraisonAI with the five items.

🤖 Generated with Claude Code

Largest scan in the series so far: 489 raw findings reduced to 401
after applying --ignore-file (first validation of that PR on a fresh
target). Curation surfaces 5 real best-practice items:
- surrealdb_vector.py default root/root credentials
- port.py shell=True with list + buggy pipe at :79
- 2 workflow inputs shell injection
- 3 curl | bash install scripts
- ~220 SQL f-string-into-identifier sites (same class as Upsonic)

Cross-references gptme + Upsonic + openllmetry posts to show
recurring patterns. Documents the third "scanner panics on a
security tool's own pattern definitions" FP case in the series
(this time PraisonAI's secret-redaction regex list).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@elfrost elfrost merged commit 9147c79 into main May 16, 2026
@elfrost elfrost deleted the feat/fifth-public-scan-praisonai branch May 16, 2026 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant