PraisonAI Has Second-Order SQL Injection in `get_all_user_threads`
Critical severity
GitHub Reviewed
Published
Mar 31, 2026
in
MervinPraison/PraisonAI
•
Updated Apr 6, 2026
Description
Published to the GitHub Advisory Database
Apr 1, 2026
Reviewed
Apr 1, 2026
Published by the National Vulnerability Database
Apr 3, 2026
Last updated
Apr 6, 2026
Summary
The
get_all_user_threadsfunction constructs raw SQL queries using f-strings with unescaped thread IDs fetched from the database. An attacker stores a malicious thread ID viaupdate_thread. When the application loads the thread list, the injected payload executes and grants full database access.Details
File Path:
src/praisonai/praisonai/ui/sql_alchemy.pyFlow:
Proof of Concept (PoC)
Impact
An attacker can achieve full database compromise, including:
References