Blind SQL Injection Vulnerability in Payload CMS
Payload CMS versions prior to 3.73.0 are vulnerable to Blind SQL Injection via maliciously crafted JSON filter inputs processed by the Drizzle database adapter.
CVE search metadata
CVE search record: CVE-2026-25544. Severity: critical. CVSS: 9.8. EPSS: 0.45%. KEV: no. Product: Payload CMS (< 3.73.0). Brief: Blind SQL Injection Vulnerability in Payload CMS. Brief link: https://feed.craftedsignal.io/briefs/2026-09-payload-cms-sqli/
Payload CMS versions prior to 3.73.0 contain a critical Blind SQL Injection vulnerability, identified as CVE-2026-25544. The vulnerability occurs during the processing of 'where' filters in API requests, specifically when the application interacts with JSON or RichText fields utilizing the Drizzle database adapter. An attacker can supply a crafted JSON payload within the 'where' filter parameter to manipulate generated JSONPath expressions, potentially allowing for unauthorized data exfiltration or database state inference. Given that a functional proof-of-concept exploit is publicly available, organizations running impacted versions are at an elevated risk of exploitation.
Attack Chain
- Attacker identifies an internet-facing endpoint running Payload CMS, such as /api/posts.
- Attacker probes the 'where' query parameter to determine if it accepts complex JSON structures.
- Attacker crafts a malicious JSON payload containing SQL injection characters (e.g., '|| @ == @ || @ == ') to target specific database fields.
- The application receives the request and passes the attacker-supplied 'where' filter to the Drizzle database adapter.
- The Drizzle adapter fails to sanitize the input, incorporating the malicious SQL syntax into the query executed against the backend PostgreSQL database.
- The backend database processes the injected query and returns a modified result set, indicating successful blind SQL injection through time-based or boolean-based inference.
- Attacker iteratively exfiltrates data from the database by observing the application's responses to varying injected conditions.
Impact
Successful exploitation allows unauthenticated attackers to infer sensitive information from the underlying PostgreSQL database. This can lead to unauthorized data disclosure, including user credentials, metadata, or other proprietary application data stored within the CMS.
Recommendation
Prioritize the following actions to mitigate this threat:
- Upgrade all instances of Payload CMS to version 3.73.0 or later to patch CVE-2026-25544.
- Implement strict input validation on the API gateway level to block requests containing anomalous characters or SQL operators within 'where' filter parameters if an immediate upgrade is not feasible.
- Monitor web server logs for suspicious requests to API endpoints that contain high concentrations of special characters in the 'where' query parameter.
Immediate actions
Upgrade Payload CMS to 3.73.0 or later
Threat Hunt
Search logs for unusual URL-encoded characters in API 'where' parameters
Data: Web server access logs
Mitigations
Patch CVE-2026-25544
CVE-2026-25544
Detection coverage 1
Detect CVE-2026-25544 Exploitation - Blind SQL Injection via API Filter
highDetects exploitation attempts against CVE-2026-25544 where attackers inject SQL metacharacters into the 'where' filter parameter of API requests.
Detection queries are available on the platform. Get full rules →