Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated network-reachable, low-complexity injection with no user interaction (AV:N/AC:L/PR:N/UI:N); a HAVING-clause read primitive yields high confidentiality but no demonstrated integrity or availability impact.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
2DescriptionCVE.org
A SQL injection vulnerability in Tencent APIJSON through 8.1.8 allows unauthenticated remote attackers to bypass per-table access control and read arbitrary database tables via the Map-form @having operator. The APIJSONORM library's AbstractSQLConfig.java applies the per-role allow-list check only on the String form of @having but not on the Map form, allowing a guest user to inject raw SQL fragments and read tables that are configured with get:[] (empty, meaning no role can read them).
Articles & Coverage 1
AnalysisAI
Unauthenticated SQL injection in Tencent APIJSON (through 8.1.8) lets remote attackers bypass the framework's per-table role-based access control and read tables explicitly marked unreadable (get:[]). The APIJSONORM library validates the per-role allow-list only for the String form of the @having operator, so supplying @having in its Map form smuggles raw SQL fragments past the guard as an anonymous guest user. No public exploit identified at time of analysis, but the flaw is trivially reachable over the network with no authentication.
Technical ContextAI
APIJSON is an open-source, JSON-based ORM/query protocol from Tencent that auto-generates SQL from client-supplied JSON, exposing database access directly to front-end clients with a role/permission model instead of hand-written endpoints. The @having operator maps to the SQL HAVING clause and can be expressed either as a String or as a Map (key/value) structure. In AbstractSQLConfig.java the allow-list enforcement that restricts which raw SQL fragments a given role may inject is applied on the String form only; the Map form is parsed and concatenated into the query without the same role check. This is a classic CWE-89 (improper neutralization of SQL) failure - the root cause is an incomplete/inconsistent input-validation path where one representation of the same feature is trusted while an equivalent one is not, and it interacts with APIJSON's access-control layer to also defeat per-table read restrictions. The single affected CPE is cpe:2.3:a:tencent:apijson:*, i.e. the APIJSONORM Java library embedded in applications built on the framework.
RemediationAI
No vendor-released patch version was identified at time of analysis, and the supplied references point only to the project repository and the affected AbstractSQLConfig.java source file rather than a tagged fix, so upgrade to a fixed release once Tencent publishes one (track https://github.com/Tencent/APIJSON releases). As concrete compensating controls: block or disable the Map form of the @having operator at the application/request-filter layer, or reject any request whose @having value is an object rather than a permitted string, which closes the specific bypass at the cost of losing Map-form HAVING functionality; enforce the per-table read allow-list server-side independent of @having form so tables set to get:[] are never queried by guest roles; require authentication on the APIJSON endpoint and remove guest/anonymous roles where feasible; and restrict network exposure of the APIJSON query endpoint to trusted internal callers (WAF/reverse-proxy rule denying HAVING-like SQL keywords in JSON bodies) - noting WAF pattern matching on JSON can produce false positives and is a stopgap, not a fix.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55241
GHSA-46x4-v393-xfpx