Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable PostgREST endpoint usable with the public anon key, no auth or interaction, only availability impacted via DB resource exhaustion.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
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.
AnalysisAI
Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust PostgreSQL resources by sending unfiltered queries to the public.audit_logs PostgREST endpoint using the public anon key. Because the query planner runs expensive logic before Row-Level Security rejection, repeated requests trigger statement timeouts (error 57014) and cascade into HTTP 500 failures on unrelated endpoints such as /orgs. No public exploit identified at time of analysis, though the technique is fully described in the GHSA advisory.
Technical ContextAI
Capgo is a self-hosted live-update backend for Capacitor mobile apps that exposes its PostgreSQL database through Supabase PostgREST. PostgREST translates HTTP requests into SQL and relies on PostgreSQL Row-Level Security (RLS) policies to gate row visibility for the anonymous JWT role. The audit_logs RLS policy was written so that PostgreSQL's planner evaluates costly join/filter logic before the RLS predicate filters out the anon role, meaning rejected queries still consume CPU and memory until the statement_timeout fires. This is a textbook CWE-400 Uncontrolled Resource Consumption issue, made worse because the anon key is by design public and the endpoint is reachable without authentication.
RemediationAI
Vendor-released patch: upgrade capgo-backend to 12.128.12 or later, as documented in GHSA-5vgv-rqj5-5748 (https://github.com/Cap-go/capgo/security/advisories/GHSA-5vgv-rqj5-5748) which rewrites the audit_logs RLS policy so the anon role is rejected before the expensive query plan executes. If immediate upgrade is not possible, revoke the anon role's SELECT privilege on public.audit_logs at the database level or block the /audit_logs PostgREST route at an upstream reverse proxy - both will break any legitimate anon-key consumer of that table and should be paired with monitoring for 57014 timeouts. Lowering PostgreSQL statement_timeout for the anon role and adding per-IP rate limiting on PostgREST will reduce blast radius but will not fully prevent the resource exhaustion under sustained concurrency.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38431
GHSA-rp66-wcx8-j4pj