/

CVE-2026-55572

Severity:

CRITICAL RISK

(10.0)

SQL Injection (CWE-89) in e107 alt_auth Authentication

CVE-2026-55572

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Unauthorized Database Access and Data Manipulation

Severity:

CRITICAL RISK

(10.0)

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

A critical SQL injection vulnerability in e107's bundled alt_auth plugin allows unauthenticated attackers to influence database queries through the submitted login username. The issue becomes risky when alt_auth is installed and either the otherdb or e107db backend uses a live external database connection, potentially exposing or modifying data accessible to that account.

A critical SQL injection vulnerability in e107's bundled alt_auth plugin allows unauthenticated attackers to influence database queries through the submitted login username. The issue becomes risky when alt_auth is installed and either the otherdb or e107db backend uses a live external database connection, potentially exposing or modifying data accessible to that account.

Affected context

The vulnerability occurs in e107 versions before 2.3.7 when the alt_auth plugin is installed and configured to authenticate against an external database through the otherdb or e107db backend. The affected login methods construct SQL statements using the submitted username and execute them before effective sanitization. Database permissions and deployment configuration influence the scope of accessible or modifiable data.

The vulnerability occurs in e107 versions before 2.3.7 when the alt_auth plugin is installed and configured to authenticate against an external database through the otherdb or e107db backend. The affected login methods construct SQL statements using the submitted username and execute them before effective sanitization. Database permissions and deployment configuration influence the scope of accessible or modifiable data.

Exploit preconditions

  • Attack surface: The alt_auth login interface
  • Required access: No authentication is generally required; the attacker must be able to submit login requests
  • Trigger point: Processing of a username by the affected otherdb or e107db authentication backend
  • Required configuration: alt_auth must be installed, and the selected backend must have a live external database connection
  • Why exploitation is possible: User-controlled input is interpolated into SQL and executed through PDO::query() before effective sanitization
  • Attack surface: The alt_auth login interface
  • Required access: No authentication is generally required; the attacker must be able to submit login requests
  • Trigger point: Processing of a username by the affected otherdb or e107db authentication backend
  • Required configuration: alt_auth must be installed, and the selected backend must have a live external database connection
  • Why exploitation is possible: User-controlled input is interpolated into SQL and executed through PDO::query() before effective sanitization

Why this happens

The underlying bug is direct construction of SQL statements from an untrusted login username. Instead of treating the username solely as data, the authentication code interpolates it into a query before reliable input handling occurs. This is a classic CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection'), because attacker-controlled input can alter the intended structure or behavior of a database command.

The underlying bug is direct construction of SQL statements from an untrusted login username. Instead of treating the username solely as data, the authentication code interpolates it into a query before reliable input handling occurs. This is a classic CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection'), because attacker-controlled input can alter the intended structure or behavior of a database command.

Potential impact

  • An unauthenticated attacker may read data available to the configured database account
  • An attacker could modify or delete accessible database records
  • Authentication-related data may be exposed or tampered with
  • Database errors may disclose generated query details through debug-message paths
  • The connected database or dependent application components may be disrupted
  • An unauthenticated attacker may read data available to the configured database account
  • An attacker could modify or delete accessible database records
  • Authentication-related data may be exposed or tampered with
  • Database errors may disclose generated query details through debug-message paths
  • The connected database or dependent application components may be disrupted

General mitigation guidance

Mitigation generally focuses on ensuring that authentication queries treat all submitted values as data rather than executable SQL.

Common defensive patterns include:

  • Using parameterized queries or prepared statements for every user-controlled value
  • Avoiding string interpolation when constructing SQL commands
  • Applying allowlisted validation appropriate to username syntax as a secondary control
  • Disabling unnecessary external authentication backends and database connections
  • Restricting the database account to the minimum required permissions
  • Preventing detailed SQL errors and generated queries from appearing in user-facing responses
  • Keeping authentication configuration and database credentials protected from unauthorized modification

Mitigation generally focuses on ensuring that authentication queries treat all submitted values as data rather than executable SQL.

Common defensive patterns include:

  • Using parameterized queries or prepared statements for every user-controlled value
  • Avoiding string interpolation when constructing SQL commands
  • Applying allowlisted validation appropriate to username syntax as a secondary control
  • Disabling unnecessary external authentication backends and database connections
  • Restricting the database account to the minimum required permissions
  • Preventing detailed SQL errors and generated queries from appearing in user-facing responses
  • Keeping authentication configuration and database credentials protected from unauthorized modification

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings involving SQL construction through concatenation, interpolation, or formatting with request parameters
  • Code-review signals such as authentication queries that pass user input to generic query execution APIs
  • Tests that verify prepared statements are used for login identifiers and other request-derived values
  • Database and web logs showing repeated malformed login inputs, unusual query errors, or unexpected authentication query patterns
  • Policy enforcement that requires parameterized database access and prevents verbose database errors in production
  • Automated security review tools configured to flag CWE-89 patterns in authentication and plugin code

Organizations can look for:

  • Static-analysis findings involving SQL construction through concatenation, interpolation, or formatting with request parameters
  • Code-review signals such as authentication queries that pass user input to generic query execution APIs
  • Tests that verify prepared statements are used for login identifiers and other request-derived values
  • Database and web logs showing repeated malformed login inputs, unusual query errors, or unexpected authentication query patterns
  • Policy enforcement that requires parameterized database access and prevents verbose database errors in production
  • Automated security review tools configured to flag CWE-89 patterns in authentication and plugin code

Sources

SourceLink
github.comgithub.com/e107inc/e107/commit/120bd4bdbe18c8690c60a007ad6716e52e6ee965
github.comgithub.com/e107inc/e107/releases/tag/v2.3.7
github.comgithub.com/e107inc/e107/security/advisories/GHSA-5f75-c25x-59wx

Frequently asked

questions

Yes. The affected functionality is a login endpoint, so an attacker generally only needs the ability to submit an authentication request. Exploitation also depends on the alt_auth plugin and a vulnerable external database backend being configured.

The potential scope is bounded by the permissions of the configured database account. Accessible data may be exposed or modified, while restricted database objects should remain outside the account's authority.

Use parameterized queries or prepared statements for authentication lookups, and ensure user input is never incorporated into SQL command text.

Combine parameterized database APIs with least-privilege database accounts, safe error handling, focused code review, static analysis, and tests covering request-derived values in all query paths.

Yes. The affected functionality is a login endpoint, so an attacker generally only needs the ability to submit an authentication request. Exploitation also depends on the alt_auth plugin and a vulnerable external database backend being configured.

The potential scope is bounded by the permissions of the configured database account. Accessible data may be exposed or modified, while restricted database objects should remain outside the account's authority.

Use parameterized queries or prepared statements for authentication lookups, and ensure user input is never incorporated into SQL command text.

Combine parameterized database APIs with least-privilege database accounts, safe error handling, focused code review, static analysis, and tests covering request-derived values in all query paths.

Find out what's already
exploitable in your codebase.