Cloudanix VulnDB

CVE-2023-40619

Critical · 9.8

CVSS

9.8

EPSS

1.3%

Published

Sep 20, 2023

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

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

  1. Scan for exposed phpPgAdmin installations running version 7.14.4 or earlier
  2. Prepare a PHP gadget chain or object that performs desired actions on unserialize
  3. Send crafted POST request to /tables.php (or similar endpoints) with ma[] containing the serialized payload
  4. 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