CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-23899
8.80.00%

CVE-2026-23899: Improper Access Check in Joomla! com_config Webservices

Amit Schendel
Amit Schendel
Senior Security Researcher

May 15, 2026·6 min read·6 visits

PoC Available

Executive Summary (TL;DR)

An authorization bypass in Joomla! webservice endpoints allows authenticated low-privileged users to read and modify sensitive configuration settings, resulting in total system compromise.

CVE-2026-23899 is a critical authorization bypass vulnerability within the Joomla! CMS webservice API. Due to an improper access check in the com_config component, authenticated low-privileged users can read and modify the global configuration, leading to the exposure of database credentials and the application secret key.

Vulnerability Overview

Joomla! CMS exposes a webservice API intended to facilitate programmatic interaction with the platform's core components. The Global Configuration component, designated internally as com_config, manages the most critical administrative settings for the application. This includes database credentials, SMTP relay configurations, and the cryptographic secret key used for session management.

CVE-2026-23899 identifies a critical authorization bypass vulnerability within the REST API controllers handling this component. The flaw allows an authenticated actor with basic API access to bypass intended privilege restrictions. The vulnerability is classified as an Improper Access Check under CWE-284.

Exploitation requires the attacker to possess a valid API token, regardless of the privileges associated with that token. The vulnerability manifests because the endpoint validates the authentication token but fails to perform subsequent authorization checks against the requested component. This permits low-privileged users to interact with administrative endpoints.

Root Cause Analysis

The vulnerability originates in the routing and controller logic of the Joomla! webservice architecture. When a request is dispatched to the /api/index.php/v1/config/application endpoint, the system extracts the X-Joomla-Token header to identify the calling user. The framework authenticates the session but delegates authorization responsibilities to the component controller.

The com_config REST controllers omit the required validation against the core.admin permission. In a secure implementation, the controller must invoke the Access::check() method or an equivalent authorization boundary before processing the request payload. The absence of this check creates a direct execution path from the authenticated router to the configuration handler.

Because the handler processes GET, POST, and PATCH methods without verifying the user's role, any authenticated request is treated as implicitly authorized. The system subsequently reads or modifies the configuration.php file based on the provided input. This architectural oversight breaks the principle of least privilege.

Code Analysis and Fix Assessment

The Joomla! API relies on a modular architecture where each component defines its own webservice controllers. The vulnerable implementation of the com_config controller extends the base API controller but overrides or fails to implement the checkAccess() method required for administrative interfaces.

During the dispatch process, the application checks if the user is logged in. However, the specific method responsible for serving the configuration proceeds directly to interacting with the configuration model. The underlying model accesses configuration.php and serializes the variables into a JSON response.

The fix for CVE-2026-23899 introduces a mandatory permission check at the beginning of the controller's lifecycle. The patched code explicitly verifies that the user object possesses the core.admin permission for the com_config component. If the check fails, the controller returns a 403 Forbidden response, halting execution before the model is invoked.

This remediation correctly establishes the authorization boundary. By enforcing the core.admin requirement at the controller level, the patch ensures that no underlying methods can be reached by unauthorized actors. Developers must consistently apply this pattern across all administrative webservice endpoints to prevent variant attacks.

Exploitation Methodology

Exploitation of CVE-2026-23899 begins with the acquisition of a valid Joomla! API token. An attacker can obtain this token through a compromised low-privileged user account, a leaked configuration file, or an adjacent vulnerability. The specific privilege level of the token is irrelevant to the attack path.

Once a token is obtained, the attacker issues an HTTP GET request to the /api/index.php/v1/config/application endpoint. The request must include the X-Joomla-Token header containing the valid credential. The server processes the request and returns an HTTP 200 OK response containing the entire global configuration serialized as a JSON object.

The attacker parses the JSON payload to extract high-value credentials. The target fields typically include $db, $user, $password, $secret, and $smtppass. These values provide direct access to the underlying database infrastructure and email relay services, bypassing the web application entirely.

Alternatively, the attacker can submit an HTTP PATCH request to the same endpoint to modify the configuration. By altering security-centric settings, such as allowed upload extensions or session lifespans, the attacker facilitates secondary attack vectors. Modifying the configuration provides a reliable path to arbitrary code execution or persistent administrative access.

Impact Assessment

The confidentiality impact of this vulnerability is total. The configuration.php file acts as the central repository for all critical infrastructure credentials within a Joomla! deployment. Exposure of the database credentials allows an attacker to connect directly to the database server, assuming it is network-accessible, or use adjacent web-based database management tools.

Exposure of the Joomla! $secret key has profound cryptographic implications. The application relies on this key for session generation, CSRF token validation, and password reset procedures. An attacker in possession of the secret key can forge administrative sessions, bypass cross-site request forgery protections, and execute actions on behalf of other users.

The integrity and availability impacts are equally severe due to the application's processing of PATCH requests. An attacker can alter the database connection string to point to an external server, causing an immediate denial of service. They can also place the site into maintenance mode or inject malicious configurations that permanently disrupt the platform's operation.

Remediation and Mitigation

The primary remediation for CVE-2026-23899 is upgrading the Joomla! CMS to a patched version. Administrators must deploy Joomla! version 5.4.4 or 6.0.4 immediately. These releases contain the necessary authorization checks within the com_config webservice controllers.

Applying the patch resolves the vulnerability but does not remediate prior exposure. Organizations must assume that any configuration data present on vulnerable instances has been compromised. A comprehensive credential rotation process must follow the software upgrade.

Administrators must generate a new database password, update the SMTP relay credentials, and cryptographically generate a new Joomla! secret key. Modifying the secret key will invalidate all active user sessions and remember-me tokens. This forced re-authentication is a necessary step to neutralize any sessions forged prior to the remediation.

Technical Appendix

CVSS Score
8.8/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Probability
0.00%
Top 100% most exploited

Affected Systems

Joomla! CMS

Affected Versions Detail

Product
Affected Versions
Fixed Version
Joomla! CMS
Joomla!
4.0.0 - 5.4.35.4.4
Joomla! CMS
Joomla!
6.0.0 - 6.0.36.0.4
AttributeDetail
CWE IDCWE-284
Attack VectorNetwork
Privileges RequiredLow (API Token)
CVSS v3.1 Score8.8
EPSS Score0.00001
Exploit StatusProof of Concept

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1078Valid Accounts
Defense Evasion
T1552Unsecured Credentials
Credential Access
CWE-284
Improper Access Control

The software does not restrict or incorrectly restricts access to a resource from an unauthorized actor.

References & Sources

  • [1]Joomla Developer Security Advisory
  • [2]CVE.org Record
  • [3]CyStack Technical Research
  • [4]SentinelOne Vulnerability Database
  • [5]Joomla Release Announcement

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.