/

CVE-2026-108900

Severity:

HIGH RISK

(7.3)

SQL Injection (CWE-89) in Exponent CMS XML-RPC Login

CVE-2026-108900

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-74, CWE-89

Impact:

Unauthorized database access and data manipulation

Severity:

HIGH RISK

(7.3)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Exponent CMS contains a SQL injection vulnerability in the XML-RPC userLogin function. A remote attacker may be able to manipulate database queries when crafted input reaches the affected login processing path, potentially accessing or modifying application data.

Exponent CMS contains a SQL injection vulnerability in the XML-RPC userLogin function. A remote attacker may be able to manipulate database queries when crafted input reaches the affected login processing path, potentially accessing or modifying application data.

Affected context

The vulnerability occurs in Exponent CMS deployments up to version 3.0.2patch2 when the XML-RPC endpoint exposes the affected userLogin function and request data is incorporated into database queries without adequate parameterization. Risk depends on endpoint exposure, database permissions, and the privileges associated with the application connection.

The vulnerability occurs in Exponent CMS deployments up to version 3.0.2patch2 when the XML-RPC endpoint exposes the affected userLogin function and request data is incorporated into database queries without adequate parameterization. Risk depends on endpoint exposure, database permissions, and the privileges associated with the application connection.

Exploit preconditions

  • Attack surface: Remotely accessible XML-RPC interface
  • Required access: Ability to send requests to the affected login function; valid authentication may not be required
  • Trigger point: Processing of attacker-controlled input by userLogin in xmlrpc.php
  • Why exploitation is possible: Input may influence SQL query construction without sufficient separation between data and query logic
  • Attack surface: Remotely accessible XML-RPC interface
  • Required access: Ability to send requests to the affected login function; valid authentication may not be required
  • Trigger point: Processing of attacker-controlled input by userLogin in xmlrpc.php
  • Why exploitation is possible: Input may influence SQL query construction without sufficient separation between data and query logic

Why this happens

The underlying bug is improper neutralization of special elements in SQL commands. When application input is concatenated into SQL statements or otherwise handled without parameterized queries, database syntax can be altered by an attacker.

This behavior maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection). The associated CWE-74 classification reflects the broader injection flaw category.

The underlying bug is improper neutralization of special elements in SQL commands. When application input is concatenated into SQL statements or otherwise handled without parameterized queries, database syntax can be altered by an attacker.

This behavior maps primarily to CWE-89: Improper Neutralization of Special Elements used in an SQL Command (SQL Injection). The associated CWE-74 classification reflects the broader injection flaw category.

Potential impact

  • An attacker may read sensitive records from the application database
  • Database contents could be modified, deleted, or corrupted
  • Authentication-related data may be exposed or altered
  • The application could experience unauthorized account or content changes
  • Further compromise could be possible if the database account has excessive privileges
  • An attacker may read sensitive records from the application database
  • Database contents could be modified, deleted, or corrupted
  • Authentication-related data may be exposed or altered
  • The application could experience unauthorized account or content changes
  • Further compromise could be possible if the database account has excessive privileges

General mitigation guidance

Mitigation generally focuses on eliminating query construction from untrusted input and reducing database privileges.

Common defensive patterns include:

  • Using parameterized queries, prepared statements, or safe query-builder abstractions
  • Applying allowlist validation for identifiers and other values that cannot be parameterized
  • Avoiding direct concatenation of request data into SQL statements
  • Restricting the application database account to only the permissions it requires
  • Limiting exposure of XML-RPC endpoints when they are not needed
  • Applying centralized error handling that does not disclose database details
  • Maintaining security testing and dependency review processes for CMS components

Mitigation generally focuses on eliminating query construction from untrusted input and reducing database privileges.

Common defensive patterns include:

  • Using parameterized queries, prepared statements, or safe query-builder abstractions
  • Applying allowlist validation for identifiers and other values that cannot be parameterized
  • Avoiding direct concatenation of request data into SQL statements
  • Restricting the application database account to only the permissions it requires
  • Limiting exposure of XML-RPC endpoints when they are not needed
  • Applying centralized error handling that does not disclose database details
  • Maintaining security testing and dependency review processes for CMS components

How teams detect issues like this

Organizations can look for SQL injection risk through:

  • Static analysis patterns that identify string concatenation or interpolation in database queries
  • Code review checks for unparameterized SQL in XML-RPC handlers and authentication routines
  • Dynamic testing of externally reachable endpoints using authorized security testing tools
  • Web application firewall or API gateway policies that detect anomalous query-oriented input
  • Database monitoring for unexpected query structures, access patterns, or privilege use
  • Automated code review tools that flag injection-prone data flows

Organizations can look for SQL injection risk through:

  • Static analysis patterns that identify string concatenation or interpolation in database queries
  • Code review checks for unparameterized SQL in XML-RPC handlers and authentication routines
  • Dynamic testing of externally reachable endpoints using authorized security testing tools
  • Web application firewall or API gateway policies that detect anomalous query-oriented input
  • Database monitoring for unexpected query structures, access patterns, or privilege use
  • Automated code review tools that flag injection-prone data flows

Sources

SourceLink
github.comgithub.com/dddwmr/CVE/blob/main/SQL%20Injection%20in%20xmlrpc.php%20userLogin%20username%20handling%20when%20USE_XMLRPC%20is%20enabled.md
vuldb.comvuldb.com/cve/CVE-2026-108900
vuldb.comvuldb.com/submit/976950
vuldb.comvuldb.com/vuln/416691
vuldb.comvuldb.com/vuln/416691/cti

Frequently asked

questions

Yes. The affected functionality is exposed through the XML-RPC interface, so exploitation may be possible remotely when that endpoint is reachable and vulnerable input reaches the login handler.

Not necessarily. The affected function is part of login processing, but the practical access requirement depends on endpoint exposure, deployment configuration, and any additional access controls.

Use parameterized database queries or prepared statements throughout the affected code path, and ensure user-controlled values are never treated as SQL syntax.

Combine parameterized queries with input validation, least-privilege database accounts, security-focused code review, automated testing, and careful restriction of externally exposed XML-RPC functionality.

Yes. The affected functionality is exposed through the XML-RPC interface, so exploitation may be possible remotely when that endpoint is reachable and vulnerable input reaches the login handler.

Not necessarily. The affected function is part of login processing, but the practical access requirement depends on endpoint exposure, deployment configuration, and any additional access controls.

Use parameterized database queries or prepared statements throughout the affected code path, and ensure user-controlled values are never treated as SQL syntax.

Combine parameterized queries with input validation, least-privilege database accounts, security-focused code review, automated testing, and careful restriction of externally exposed XML-RPC functionality.

Find out what's already
exploitable in your codebase.