CVE-2026-71808 Overview
CVE-2026-71808 is a SQL Injection vulnerability in Siam Ordering (siam-server) version 1.0.0. The flaw resides in AdminMapper.java and multiple additional MyBatis Mapper files, including MerchantWithdrawRecordMapper.java and MemberWithdrawRecordMapper.java. These files use ${} string concatenation instead of parameterized bindings, allowing user-controlled input to reach SQL statements unsanitized. Remote authenticated attackers can execute arbitrary SQL commands against the backend database.
Critical Impact
Authenticated remote attackers can execute arbitrary SQL statements, exposing or altering database contents including administrator, merchant, and member records.
Affected Products
- Siam Ordering (siam-server) 1.0.0
- Components using AdminMapper.java
- Components using MerchantWithdrawRecordMapper.java and MemberWithdrawRecordMapper.java
Discovery Timeline
- 2026-09-09 - CVE-2026-71808 published to NVD
- 2026-09-09 - Last updated in NVD database
Technical Details for CVE-2026-71808
Vulnerability Analysis
Siam Ordering uses the MyBatis persistence framework to compose SQL statements inside XML or annotated Mapper files. MyBatis exposes two substitution syntaxes: #{} for parameterized bindings and ${} for raw string concatenation. The affected Mapper files use ${} for values that originate from HTTP request parameters. Attackers can inject SQL fragments that alter query logic, extract arbitrary rows, or run stacked statements depending on the database driver configuration.
Exploitation requires valid authentication, but any low-privileged account with access to the affected endpoints is sufficient. Because the injection sits in mapper code shared across administrative and financial withdrawal flows, attackers can read or modify sensitive tables tied to merchants and members.
Root Cause
The root cause is improper neutralization of special elements in SQL commands [CWE-89]. Developers used MyBatis ${} concatenation for values that should have been bound with #{}. The framework substitutes ${} literally into the SQL string before the prepared statement is compiled, so no escaping occurs.
Attack Vector
An authenticated attacker submits crafted input to an endpoint whose handler invokes one of the affected Mapper methods. The malicious payload is concatenated directly into the SQL query and executed by the database. See the GitHub vulnerability report for endpoint-level reproduction details.
Detection Methods for CVE-2026-71808
Indicators of Compromise
- Application or database logs containing SQL fragments such as UNION SELECT, OR 1=1, SLEEP(, or information_schema in request parameters routed to affected Mappers.
- Unusually long or slow-running queries originating from AdminMapper, MerchantWithdrawRecordMapper, or MemberWithdrawRecordMapper.
- Authenticated sessions issuing large volumes of requests to admin, merchant withdrawal, or member withdrawal endpoints.
Detection Strategies
- Perform static analysis of the Siam Ordering codebase to enumerate every occurrence of ${ inside Mapper XML files and Java annotations.
- Enable database audit logging and alert on queries that contain multiple statements, tautologies, or references to system catalogs from the application service account.
- Deploy a web application firewall with SQL injection signatures in front of authenticated Siam Ordering endpoints.
Monitoring Recommendations
- Forward application, web server, and database logs to a centralized analytics platform and correlate authenticated user sessions with anomalous query patterns.
- Monitor for spikes in database error responses (syntax errors, type conversion failures) that often accompany injection probing.
- Track outbound data volume from the database host to detect bulk exfiltration through successful injection.
How to Mitigate CVE-2026-71808
Immediate Actions Required
- Restrict access to Siam Ordering administrative, merchant, and member withdrawal endpoints to trusted networks until a patched build is deployed.
- Rotate credentials for administrator, merchant, and member accounts if the application was exposed to untrusted users.
- Review database audit logs for suspicious queries against admin, merchant withdrawal, and member withdrawal tables.
Patch Information
No vendor patch is referenced in the NVD entry at the time of publication. Track the upstream project and the GitHub vulnerability report for remediation updates. The fix requires replacing every unsafe ${} substitution in the affected Mapper files with parameterized #{} bindings.
Workarounds
- Refactor AdminMapper.java, MerchantWithdrawRecordMapper.java, MemberWithdrawRecordMapper.java, and any other Mapper files that use ${} on user-supplied values to use #{} parameter bindings.
- Apply strict server-side allowlist validation on parameters such as sort columns and order directions where dynamic SQL is unavoidable.
- Run the Siam Ordering database account with the minimum privileges required, denying DROP, ALTER, and cross-database access.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

