Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain authenticated local access
-
DeliverySupply malicious YAML/dict configuration
-
ExploitInject SQL fragments via table_prefix
-
InstallTrigger SQLiteConversationStore query execution
-
C2Extract schema from sqlite_master
-
ExecuteManipulate query results via UNION injection
-
ImpactExfiltrate sensitive conversation data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must have low-privilege local access to PraisonAI instances running versions prior to 4.5.133 and control the table_prefix configuration value through from_yaml or from_dict configuration inputs to inject SQL fragments into SQLiteConversationStore queries. |
| Impact | The CVSS 7.2 score reflects meaningful constraints that reduce real-world exploitability. The local attack vector (AV:L) requires the attacker to already have access to the system where PraisonAI runs, and low privileges (PR:L) means authenticated access is required. The attack complexity present (AT:P) indicator suggests specific conditions must be met-specifically, the attacker must control configuration input through from_yaml or from_dict methods, which may not be exposed in all deployment scenarios. High confidentiality and integrity impacts (VC:H/VI:H) with no availability impact (VA:N) indicate data exfiltration and tampering risks without service disruption. No EPSS score is available, and KEV status shows no active exploitation, suggesting this remains a theoretical risk. The absence of publicly available exploit code further reduces immediate weaponization risk. SSVC assessment: exploitation status is none, technical impact is partial (data access/manipulation but no code execution), and automatability is low due to configuration control prerequisite. This is a genuine risk for multi-tenant or configuration-as-code deployments where untrusted users can supply YAML/dict configurations, but lower priority for single-tenant installations with trusted configuration sources. |
| Exploit ScenarioDerived | An attacker with authenticated local access to a PraisonAI deployment gains the ability to supply configuration data through YAML files or dictionary inputs. By crafting a malicious table_prefix value containing SQL fragments like "conversations" UNION SELECT type,name,sql,1,2 FROM sqlite_master--, the attacker injects commands into the query construction logic. When SQLiteConversationStore executes queries with this poisoned prefix, it returns internal schema information from sqlite_master, exposing all database table structures, column names, and stored data relationships, enabling subsequent targeted data extraction attacks. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 14, 2026
SQL identifier injection in PraisonAI's SQLiteConversationStore allows authenticated local attackers with configuration control to extract database schema and manipulate query results. The vulnerability affects PraisonAI versions prior to 4.5.133, where unsanitized table_prefix values are concatenated into SQL queries via f-strings. Attackers controlling configuration inputs (from_yaml/from_dict) can inject SQL fragments to access internal SQLite tables like sqlite_master and execute UNION-based injections. A vendor patch is available in version 4.5.133. No public exploit code or active exploitation confirmed at time of analysis. CVSS 7.2 indicates local attack vector with low complexity but requires low privileges and present attack complexity conditions.
RemediationAI
Upgrade to PraisonAI version 4.5.133 or later, which contains the fix implemented in commit 0accebb2e3c3ec2fca66bbea0444fb7a35f0b4ef (available at https://github.com/MervinPraison/PraisonAI/commit/0accebb2e3c3ec2fca66bbea0444fb7a35f0b4ef). For environments where immediate upgrade is not feasible, implement strict input validation on table_prefix configuration values using an allowlist of alphanumeric characters only, rejecting any special characters or SQL syntax. Alternatively, restrict configuration input methods (from_yaml/from_dict) to trusted sources only and remove user-controllable configuration capabilities. Review existing configurations for suspicious table_prefix values and audit SQLite database contents for unauthorized schema modifications. Consult the GitHub security advisory at https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-x783-xp3g-mqhp for additional vendor guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability exists in PraisonAI's SQLiteConversationStore component (cpe:2.3:a:mervinpraison:praisonai), specifically in the sqlite.py module where SQL query construction occurs. This is a classic SQL identifier injection (CWE-89) issue arising from the inability to safely parameterize SQL identifiers (table/column names) using prepared statements. The table_prefix configuration parameter flows through the application's configuration pipeline (config.py → factory.py → sqlite.py) and is directly embedded into SQL queries using Python f-string formatting. Unlike SQL value injection where parameterized queries provide protection, identifier injection requires explicit validation or allowlisting since database APIs do not support parameterized identifiers. The multi-agent teams system architecture means this configuration injection point affects the conversation storage layer, which likely handles sensitive agent interaction data. SQLite's sqlite_master table, accessible through this vulnerability, contains complete schema information for all database objects.
Know when Praisonai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
PraisonAI is a multi-agent teams system. Prior to 4.5.133, there is an SQL identifier injection vulnerability in SQLiteConversationStore where the table_prefix configuration value is directly concatenated into SQL queries via f-strings without any validation or sanitization. Since SQL identifiers cannot be safely parameterized, an attacker who controls the table_prefix value (e.g., through from_yaml or from_dict configuration input) can inject arbitrary SQL fragments that alter query structure. This enables unauthorized data access, such as reading internal SQLite tables like sqlite_master, and manipulation of query results through techniques like UNION-based injection. The vulnerability propagates from configuration input in config.py, through factory.py, to the SQL query construction in sqlite.py. Exploitation requires the ability to influence configuration input, and successful exploitation leads to internal schema disclosure and full query result tampering. This issue has been fixed in version 4.5.133.
Executive ViewAI
PraisonAI versions before 4.5.133 contain a SQL identifier injection vulnerability in SQLiteConversationStore that allows authenticated local attackers with configuration control to access sensitive database schema and manipulate query results. Organizations using PraisonAI for conversational AI workloads should prioritize upgrading to version 4.5.133 immediately, as the vulnerability enables attackers to bypass data isolation controls and potentially exfiltrate application or user data stored in the SQLite backend.
Apply vendor patch. If immediate patching is not feasible: (1) Restrict configuration file access using OS-level permissions to prevent unauthorized modification of table_prefix values; (2) Deploy network segmentation to limit SQLiteConversationStore access to trusted application components only; (3) Enable database activity logging to detect anomalous SQL query patterns; (4) Run PraisonAI with the minimum privileges necessary to prevent lateral movement if configuration is compromised.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex
Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl
Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr
EUVD-2026-22215
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB