CVE-2026-56248: Capgo Unauthenticated Denial-of-Service via Audit Logs RLS Policy
Capgo versions before 12.128.12 contain a flaw that allows anyone on the internet to crash the application without authentication. The vulnerability exists in how the backend handles access to audit logs through its API. Attackers can repeatedly query a specific endpoint with a publicly available key, causing the database to work so hard that it times out and becomes unresponsive. When this happens under sustained attack, it cascades into failures across the entire application, making legitimate features unavailable to users.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-400
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-23 / 2026-06-23
NVD description (verbatim)
Cap-go capgo (capgo-backend) before 12.128.12 contains an unauthenticated denial-of-service vulnerability arising from the audit_logs table's Row-Level Security (RLS) policy when accessed via the Supabase PostgREST API. Because the PostgreSQL query planner executes costly logic before RLS rejection, unfiltered queries to the public.audit_logs endpoint using the public anon key consistently trigger statement timeouts (PostgREST error 57014). Under concurrency, this exhausts database resources and causes cascading HTTP 500 failures on unrelated endpoints (e.g. /orgs), resulting in an application-layer denial of service.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability arises from a Row-Level Security (RLS) policy implementation in Capgo's audit_logs table that is exposed via the Supabase PostgREST API. The PostgreSQL query planner executes expensive filtering logic before the RLS policy can reject unauthorized access, allowing unauthenticated requests using the public anon key to trigger statement timeouts (PostgREST error 57014). The expensive query execution exhausts database connection pools and CPU resources; under concurrent load, this resource exhaustion propagates to unrelated API endpoints (such as /orgs), causing HTTP 500 errors and application-wide service degradation. The flaw is classified as a CWE-400 (Uncontrolled Resource Consumption) issue.
Business impact
This vulnerability enables a straightforward denial-of-service attack that requires no authentication or specialized tools. An attacker can render the Capgo application unavailable to legitimate users by sending repeated requests from a single machine or distributed sources. The cascading failure pattern means that even endpoints unrelated to audit logs become unavailable, amplifying the blast radius. For organizations relying on Capgo for mobile app deployment and lifecycle management, this translates to inability to deploy updates, manage app versions, or serve legitimate API requests during an active attack. Recovery requires database intervention or application restart.
Affected systems
Capgo (capgo-backend) versions prior to 12.128.12 are vulnerable. The issue specifically affects deployments using Supabase as the database backend with PostgREST API exposure. Any organization running an affected version with internet-facing PostgREST endpoints is at risk, regardless of deployment environment (cloud or self-hosted). The public anon key is sufficient to trigger the vulnerability; no privileged credentials are required.
Exploitability
Exploitability is very high. The attack requires only network access and knowledge of the audit_logs endpoint URL—both of which are readily discoverable. No authentication is needed; the public anon key functions by design. No complex exploitation techniques or race conditions are required; simple sequential or concurrent HTTP requests suffice to trigger timeout conditions and resource exhaustion. Proof of concept would be trivial (a basic curl loop or load-testing tool). This is a network-accessible, unauthenticated denial-of-service vulnerability with a low barrier to execution.
Remediation
Upgrade Capgo to version 12.128.12 or later. This version addresses the RLS policy execution flaw by restructuring the query planning or policy enforcement to prevent expensive operations from executing before authentication checks. Organizations unable to upgrade immediately should consider restricting network access to the PostgREST API using a Web Application Firewall (WAF) or API gateway, limiting requests to the audit_logs endpoint, or temporarily disabling public anon access if business logic permits. Database-level rate limiting may also mitigate repeated timeout requests.
Patch guidance
Apply Capgo version 12.128.12 or later as soon as feasible, given the high exploitability and lack of exploit complexity. Verify the patch version against the vendor's official release notes before deployment. The upgrade should be tested in a staging environment to confirm that audit_logs functionality and related RLS policies operate correctly post-patch. Monitor database query performance after patching to ensure the RLS execution cost has been resolved. If the application is managed by a SaaS provider (e.g., Capgo Cloud), check whether the provider has already deployed the patch to your tenant.
Detection guidance
Monitor PostgreSQL slow query logs and application error logs for frequent PostgREST error 57014 (statement timeout) entries originating from the public.audit_logs endpoint. Spike in HTTP 500 errors across multiple endpoints, particularly when correlated with audit_logs queries, suggests an active attack or vulnerability exploitation. Set up alerts on database connection pool exhaustion and CPU utilization spikes coinciding with POST/GET requests to the audit_logs endpoint. Analyze access logs for repeated unauthenticated requests to the audit_logs endpoint from the same source IP or user agent. Implement distributed tracing to map the cascading failures from audit_logs queries to downstream service degradation.
Why prioritize this
This vulnerability scores CVSS 7.5 (HIGH) and combines high exploitability, no authentication requirement, network accessibility, and significant availability impact. The cascading failure pattern increases operational risk. While not yet in the CISA KEV catalog, the low exploitation barrier and immediate business impact warrant urgent patching. Organizations should treat this as a priority vulnerability requiring action within days rather than weeks, especially if the application is internet-facing or handles time-sensitive deployments.
Risk score, explained
The CVSS 3.1 score of 7.5 reflects a network-accessible, unauthenticated attack vector (AV:N/PR:N) with low complexity (AC:L), no impact on confidentiality or integrity, but high impact on availability (A:H). The score does not account for the cascading failure pattern or the business-critical nature of app deployment infrastructure, which may warrant organizational risk elevation. The unchanged scope (S:U) indicates the impact is contained to the vulnerable component's resources, though the cascading effects blur this boundary in practice.
Frequently asked questions
Can this vulnerability be exploited from inside a private network?
Yes. The vulnerability requires only network connectivity to the PostgREST API and knowledge of the audit_logs endpoint. If the PostgREST API is accessible from an internal network segment, the attack is feasible. However, the primary risk is from external attackers, as the public anon key and endpoint are designed for unauthenticated public access.
Does upgrading to 12.128.12 require downtime?
That depends on your deployment strategy. In-place upgrades or rolling deployments with a load balancer should allow seamless patching. However, test the upgrade in a non-production environment first to confirm compatibility and verify that audit_logs queries perform correctly after the patch. Consult the vendor's upgrade documentation for specific guidance.
If we restrict network access to PostgREST, are we protected?
Restricting network access to the PostgREST API via a firewall or API gateway is a valid compensating control that reduces immediate risk. However, this is not a permanent solution. You should still plan to upgrade to 12.128.12 to address the root cause. If you later need to re-enable public PostgREST access, the vulnerability will re-emerge.
How do we know if we've been attacked?
Look for spikes in PostgREST error 57014 (statement timeout) in your application logs, particularly from the audit_logs endpoint. Also monitor for cascading HTTP 500 errors on other endpoints and database slow query logs. Check your web server and database access logs for repeated requests to the audit_logs endpoint from unexpected sources during the period of availability issues.
This analysis is based on the CVE description and publicly available information as of the publication date. Security researchers and organizations should verify patch version numbers, affected product versions, and remediation steps against the official Capgo vendor advisory and release notes before taking action. No exploit code or weaponized proof-of-concept is provided. Organizations should conduct their own risk assessment and testing before applying patches in production environments. This vulnerability is not yet listed in the CISA KEV catalog as of the analysis date, but the high exploitability warrants urgent attention regardless of KEV status. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2023-54365HIGHTraefik HTTP/2 Denial of Service Vulnerability – Rapid Reset Attack
- CVE-2024-14036HIGHDräger Core Denial of Service via Malformed SDC Messages
- CVE-2025-52293HIGHGPAC MP4Box HEVC Parser Denial of Service (CVSS 7.5)
- CVE-2025-53114HIGHCometD Denial-of-Service via Unacknowledged Message Queue Overflow
- CVE-2025-61025HIGHOpenLink Virtuoso 7.2.11 Remote DoS via SQL Query Parsing
- CVE-2026-10069HIGHShibby Tomato miniupnpd Resource Exhaustion Vulnerability
- CVE-2026-10143HIGHkafka-python SCRAM DoS – Event Loop Freeze Vulnerability
- CVE-2026-12151HIGHundici WebSocket Memory Exhaustion DoS Vulnerability