CVE-2026-56221: Cap-go SQL Injection in cloudflare.ts (CVSS 6.5)
Cap-go versions prior to 12.128.2 allow authenticated users with basic read-level API permissions to perform SQL injection attacks. By manipulating specific API parameters—including deviceIds, search, version_name, cursor, and actions—attackers can inject malicious SQL code to bypass access controls and view analytics data belonging to other users or applications. This is a logic-based flaw in how user input is incorporated into database queries rather than a result of missing authentication.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.5 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
- Weaknesses (CWE)
- CWE-89
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-22 / 2026-06-23
NVD description (verbatim)
Cap-go before 12.128.2 contains multiple SQL injection vulnerabilities in cloudflare.ts where user-controlled values from API request bodies are interpolated directly into SQL query strings without sanitization or parameterization. Authenticated users with read-level API key permissions can inject arbitrary SQL through deviceIds, search, version_name, cursor, and actions parameters to access analytics data belonging to other users or applications.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from unsafe string interpolation in the cloudflare.ts module within Cap-go. SQL queries are constructed by directly concatenating user-supplied input from API request bodies without parameterized query techniques or input sanitization. An authenticated attacker with read-level API key credentials can craft payloads in multiple parameters (deviceIds, search, version_name, cursor, actions) to inject arbitrary SQL clauses. This allows conditional logic manipulation to retrieve data from tables normally restricted by authorization checks. The flaw affects analytics data access control but does not enable data modification or denial of service.
Business impact
For organizations running Cap-go to manage mobile application deployments and analytics, this vulnerability enables unauthorized cross-tenant or cross-project data disclosure. A malicious insider with read API credentials—or an attacker who compromises such credentials—can exfiltrate competitive analytics, usage patterns, and customer data belonging to other deployments. This creates regulatory risk under GDPR, CCPA, and similar frameworks, and erodes customer trust if data exposure occurs. Organizations must audit historical API access logs to determine whether the exposure window resulted in actual breaches.
Affected systems
Cap-go versions before 12.128.2 are affected. The vulnerability requires an attacker to first possess a valid authenticated API key with read-level permissions, limiting the attack surface to internal users, service accounts, or compromised credentials. No information on whether Cap-go SaaS instances are auto-patched or require manual deployment updates is provided; organizations should verify their deployment model (self-hosted vs. cloud-managed) with Cap-go documentation or support.
Exploitability
Exploitation requires valid authentication, which significantly reduces opportunistic attack likelihood. However, the bar for attack is low once an attacker has legitimate credentials: no complex logic or race conditions are needed, and SQL injection payloads can be tested iteratively. The vulnerability is straightforward to execute programmatically. The fact that the vulnerability remained undetected until version 12.128.2 suggests it was not actively exploited in the wild, but this does not diminish the risk to organizations using older versions.
Remediation
The primary remediation is to upgrade Cap-go to version 12.128.2 or later, which addresses the SQL injection flaw through parameterized query implementation or input validation. As an interim control, organizations should implement least-privilege API key policies: review which users and service accounts hold read-level keys, rotate or revoke unnecessary keys, and enable API key audit logging if available. Network-based controls such as IP whitelisting for API access can reduce the attack surface. After patching, review API audit logs from the vulnerability window to identify any suspicious queries that may have accessed unauthorized data.
Patch guidance
Deploy Cap-go 12.128.2 or later into your environment. If you operate a self-hosted Cap-go instance, check the Cap-go release notes and upgrade documentation for any breaking changes or migration steps. If you use Cap-go cloud services, verify whether patching is automatic or requires manual action. Test the upgrade in a staging environment first to confirm compatibility with your existing API integrations and deployed applications. Once patched, validate that SQL injection payloads are properly rejected or safely escaped.
Detection guidance
Monitor API audit logs for unusual query patterns in the identified vulnerable parameters (deviceIds, search, version_name, cursor, actions). Look for SQL keywords (UNION, SELECT, WHERE, OR) embedded in parameter values. Implement Web Application Firewall (WAF) rules to block common SQL injection patterns in API request bodies targeting Cap-go endpoints. Query database transaction logs for unexpected SELECT operations initiated by service accounts or read-level API keys, particularly queries that appear to access rows outside the expected authorization scope. Retrospective analysis should focus on the time window between the vulnerability's introduction and your patch deployment.
Why prioritize this
Although the CVSS score is 6.5 (medium), this vulnerability should be prioritized based on business context. The flaw enables direct unauthorized data access rather than requiring additional exploitation steps, and it affects data that typically contains customer identities, usage metrics, and competitive intelligence. For SaaS providers or organizations with multi-tenant deployments, cross-tenant data leakage carries significant compliance and contractual implications. However, the authentication requirement limits the risk to insider threats or credential compromise scenarios, which justifies a medium rather than high priority. Organizations with critical analytics data or strict regulatory obligations should treat this as high priority.
Risk score, explained
The CVSS 3.1 score of 6.5 reflects high confidentiality impact (C:H), low attack complexity (AC:L), and a requirement for low privileges (PR:L). The score correctly captures that no network-level authentication barriers exist beyond the API key itself, making the attack simple to execute once credentials are obtained. The score does not account for the low likelihood of opportunistic exploitation due to authentication requirements, nor does it weight business-specific factors such as data sensitivity or regulatory exposure. Organizations should apply their own risk multipliers based on whether they hold regulated data (PCI, HIPAA, GDPR subject data) or operate in industries where competitive data theft carries significant business impact.
Frequently asked questions
Can an attacker exploit this without valid API credentials?
No. The vulnerability requires an authenticated API key with at least read-level permissions. An attacker must obtain legitimate credentials through credential compromise, insider threat, or supply chain attack. This is a significant limiting factor and reduces the likelihood of mass exploitation.
Does patching require downtime for Cap-go services?
The Cap-go 12.128.2 release notes will specify whether the upgrade is in-place compatible or requires a restart. You should verify with Cap-go documentation or support, and always test in a non-production environment before deploying to production to understand any operational impact.
If we rotate all our API keys after patching, do we still need to audit historical logs?
Yes. Rotating keys prevents future attacks from compromised credentials, but does not erase evidence of past exploitation. Audit logs should be reviewed to determine whether anyone accessed analytics data outside their authorization scope during the vulnerability window. This is important for incident response, regulatory disclosures, and understanding whether customer data was exposed.
Are there known public exploits for this vulnerability?
No evidence of public exploit code or active exploitation has been reported as of the publication date. However, this is a straightforward SQL injection vulnerability, and any actor with technical capability and access to read-level credentials could develop exploit code. Do not rely on the absence of public proof-of-concept code to justify delaying patching.
This analysis is based on the CVE and vendor information available as of the publication date. Organizations should verify patch availability, compatibility, and deployment procedures against Cap-go's official advisory and release documentation. The CVSS score represents a general severity baseline; your organization's risk tolerance and data classification should drive prioritization. No active exploitation in the wild has been confirmed, but this does not eliminate the need for timely patching. If you believe your Cap-go instance has been exploited, contact Cap-go support and your incident response team immediately. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2026-0075MEDIUMAndroid SQL Injection in Contacts Database – Privilege Escalation Risk
- CVE-2026-10039MEDIUMFrontend Admin WordPress Plugin SQL Injection Vulnerability
- CVE-2026-10155MEDIUMSQL Injection in Bdtask Multi-Store Inventory Management System 1.0
- CVE-2026-10170MEDIUMSQL Injection in code-projects Visitor Management System 1.0
- CVE-2026-10171MEDIUMSQL Injection in code-projects Online Music Site 1.0 AdminUpdateAlbum.php
- CVE-2026-10176MEDIUMSQL Injection in Aider-AI Aider 0.86.3 Code Generation
- CVE-2026-10193MEDIUMSQL Injection in OFCMS ComnController – Authentication Required
- CVE-2026-10202MEDIUMOFCMS 1.1.3 SQL Injection in SystemDictController