CVE-2023-40619
Critical · 9.8CVSS
9.8
EPSS
1.3%
Published
Sep 20, 2023
CISA due date
—
Cloudanix analysis
A flaw in an older database management web tool lets attackers run their own programs on the server simply by sending specially formatted data, potentially exposing sensitive information.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Deserialization
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Deserialization of untrusted data via direct calls to PHP unserialize() on attacker-controlled input (such as the ma[] POST parameter in tables.php) allows instantiation of arbitrary objects and subsequent remote code execution.
Why it matters to the business
Attackers can gain complete control of the affected web application server, resulting in potential data theft, unauthorized access to database systems, and operational disruption; the vulnerability has been public for over three years with modest but increasing exploit probability.
How an attack unfolds
An unauthenticated attacker locates a phpPgAdmin instance, crafts a malicious serialized PHP object, and submits it via a POST request containing the ma[] parameter to tables.php; the application passes the data directly to unserialize(), triggering object instantiation that executes attacker-supplied code.
How to fix it
Upgrade phpPgAdmin to a version newer than 7.14.4; where the application is provided through packaged distributions, apply the listed fixed versions such as thunderbird 1:115.9.0-1~deb11u1 or firefox-esr 115.9.0esr-1~deb11u1 on Debian 11/12/13 systems.
How to confirm the fix worked
Confirm phpPgAdmin version is greater than 7.14.4; review application source for removal of direct unserialize() calls on request parameters; test by submitting a benign serialized payload and verifying it is no longer processed.
Typical attack path
- Scan for exposed phpPgAdmin installations running version 7.14.4 or earlier
- Prepare a PHP gadget chain or object that performs desired actions on unserialize
- Send crafted POST request to /tables.php (or similar endpoints) with ma[] containing the serialized payload
- Achieve remote code execution on the web server
How to detect it
Examine web server access logs for POST requests to tables.php or similar endpoints containing the ma[] parameter with serialized PHP object markers such as O:, a:, or s:; inspect application error logs for unserialize-related warnings or unexpected object instantiation.
What your security team should do
- Prioritize patching or replacing any remaining phpPgAdmin 7.14.4 or older deployments
- Scan internal networks for publicly reachable instances of the application
- Implement web application firewall rules to block serialized PHP object patterns in POST bodies
- Review logs for unexpected POST requests to tables.php containing serialized data
The record
phpPgAdmin 7.14.4 and earlier is vulnerable to deserialization of untrusted data which may lead to remote code execution because user-controlled data is directly passed to the PHP 'unserialize()' function in multiple places. An example is the functionality to manage tables in 'tables.php' where the 'ma[]' POST parameter is deserialized.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | phppgadmin | 0 | 5.1+ds-4+deb10u1 |
| Debian:13 | phppgadmin | 0 | 7.14.7+dfsg-1 |
| Ubuntu:16.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:18.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:20.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:22.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:24.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:24.10 | phppgadmin | 0 | No fix |
| Ubuntu:25.04 | phppgadmin | 0 | No fix |
| Ubuntu:25.10 | phppgadmin | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | phppgadmin | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | phppgadmin | 0 | No fix |
Related vulnerabilities
- CVE-2008-5587 Directory traversal vulnerability in libraries/lib.inc.php in phpPgAdmin 4.2.1 and… Also affects phppgadmin
- CVE-2007-5728 Cross-site scripting (XSS) vulnerability in phpPgAdmin 3.5 to 4.1.1, and possibly 4.1.2… Also affects phppgadmin
- CVE-2026-114724 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 contains an object injection… CWE-502
- CVE-2026-112081 A vulnerability was determined in hankcs HanLP up to 2.1.0-beta.64. CWE-502
- CVE-2026-96745 Deserialization of untrusted data in the command monitoring support of the MongoDB PHP… CWE-502
- CVE-2026-62107 Unauthenticated PHP Object Injection in Masteriyo - LMS <= 3.4.0 versions. CWE-502
- CVE-2026-62103 Unauthenticated PHP Object Injection in Everest Forms <= 3.6.0 versions. CWE-502
- CVE-2026-62105 Unauthenticated PHP Object Injection in ThemeREX Addons < 2.45.0 versions. CWE-502