Cloudanix VulnDB

CVE-2024-8932

None

CVSS

—

EPSS

1.3%

Published

Nov 22, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in older PHP versions on 32-bit systems can let specially crafted input corrupt memory when handling directory lookups, potentially crashing applications or allowing misuse.

Chainable
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Remote Code Execution
Component
Library
Class
Buffer Overflow
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Uncontrolled long string inputs to ldap_escape() on 32-bit systems trigger an integer overflow that results in an out-of-bounds write.

Why it matters to the business

Legacy 32-bit PHP deployments using LDAP functions may experience application crashes or potential memory corruption, increasing risk to services that still run on older hardware or operating systems.

How an attack unfolds

An attacker supplies an excessively long string argument to ldap_escape() in a PHP application running on a 32-bit system; the integer overflow bypasses length checks and writes attacker-controlled data beyond allocated buffers.

How to fix it

Upgrade PHP to 8.1.31 or later, 8.2.26 or later, or 8.3.14 or later on all 32-bit systems. Apply the exact fixed commits listed for php/php-src and the corresponding Ubuntu chromium-browser patches where applicable.

How to confirm the fix worked

Verify the installed PHP version is at or above the fixed releases; run regression tests that exercise ldap_escape() with maximum-length inputs on 32-bit builds.

Typical attack path

  1. Identify a PHP application that calls ldap_escape() with user-controlled input
  2. Craft a string longer than 2^31-1 bytes to trigger the 32-bit integer overflow
  3. Trigger the vulnerable code path to cause the out-of-bounds write
  4. Leverage the resulting memory corruption for denial of service or further exploitation

How to detect it

Monitor application logs and core dumps for segmentation faults or abnormal memory access patterns around LDAP calls; correlate with web request logs showing unusually long parameters to ldap_escape().

What your security team should do

  • Prioritize inventory of all 32-bit PHP installations and schedule upgrades within standard change windows
  • Add version checks for PHP 8.1 < 8.1.31, 8.2 < 8.2.26, and 8.3 < 8.3.14 to continuous monitoring
  • Review LDAP-related code for direct exposure of user input to ldap_escape()
  • Plan migration off 32-bit platforms where feasible to eliminate the class of integer-overflow issues

The record

In PHP versions 8.1.* before 8.1.31, 8.2.* before 8.2.26, 8.3.* before 8.3.14, uncontrolled long string inputs to ldap_escape() function on 32-bit systems can cause an integer overflow, resulting in an out-of-bounds write.

Affected packages

Ecosystem Package Introduced Fixed
Bitnami libphp 0 8.1.31
Bitnami php 0 8.1.31
Bitnami php 8.1.0 8.1.31
Bitnami php-min 0 8.1.31
Bitnami php-min 8.1.0 8.1.31
Chainguard php-8.1 0 8.1.31-r0
Chainguard php-8.1-apache 0 8.1.31-r0
Chainguard php-8.1-bcmath 0 8.1.31-r0
Chainguard php-8.1-bcmath-config 0 8.1.31-r0
Chainguard php-8.1-bz2 0 8.1.31-r0
Chainguard php-8.1-bz2-config 0 8.1.31-r0
Chainguard php-8.1-calendar 0 8.1.31-r0
Chainguard php-8.1-calendar-config 0 8.1.31-r0
Chainguard php-8.1-cgi 0 8.1.31-r0
Chainguard php-8.1-config 0 8.1.31-r0
Chainguard php-8.1-ctype 0 8.1.31-r0
Chainguard php-8.1-ctype-config 0 8.1.31-r0
Chainguard php-8.1-curl 0 8.1.31-r0
Chainguard php-8.1-curl-config 0 8.1.31-r0
Chainguard php-8.1-dbg 0 8.1.31-r0
Chainguard php-8.1-dev 0 8.1.31-r0
Chainguard php-8.1-doc 0 8.1.31-r0
Chainguard php-8.1-dom 0 8.1.31-r0
Chainguard php-8.1-dom-config 0 8.1.31-r0
Chainguard php-8.1-exif 0 8.1.31-r0
Chainguard php-8.1-exif-config 0 8.1.31-r0
Chainguard php-8.1-fileinfo 0 8.1.31-r0
Chainguard php-8.1-fileinfo-config 0 8.1.31-r0
Chainguard php-8.1-fpm 0 8.1.31-r0
Chainguard php-8.1-fpm-config 0 8.1.31-r0
Chainguard php-8.1-ftp 0 8.1.31-r0
Chainguard php-8.1-ftp-config 0 8.1.31-r0
Chainguard php-8.1-gd 0 8.1.31-r0
Chainguard php-8.1-gd-config 0 8.1.31-r0
Chainguard php-8.1-gettext 0 8.1.31-r0
Chainguard php-8.1-gettext-config 0 8.1.31-r0
Chainguard php-8.1-gmp 0 8.1.31-r0
Chainguard php-8.1-gmp-config 0 8.1.31-r0
Chainguard php-8.1-iconv 0 8.1.31-r0
Chainguard php-8.1-iconv-config 0 8.1.31-r0
Chainguard php-8.1-intl 0 8.1.31-r0
Chainguard php-8.1-intl-config 0 8.1.31-r0
Chainguard php-8.1-ldap 0 8.1.31-r0
Chainguard php-8.1-ldap-config 0 8.1.31-r0
Chainguard php-8.1-mbstring 0 8.1.31-r0
Chainguard php-8.1-mbstring-config 0 8.1.31-r0
Chainguard php-8.1-mysqli 0 8.1.31-r0
Chainguard php-8.1-mysqli-config 0 8.1.31-r0
Chainguard php-8.1-mysqlnd 0 8.1.31-r0
Chainguard php-8.1-mysqlnd-config 0 8.1.31-r0
Chainguard php-8.1-odbc 0 8.1.31-r0
Chainguard php-8.1-odbc-config 0 8.1.31-r0
Chainguard php-8.1-opcache 0 8.1.31-r0
Chainguard php-8.1-opcache-config 0 8.1.31-r0
Chainguard php-8.1-openssl 0 8.1.31-r0
Chainguard php-8.1-openssl-config 0 8.1.31-r0
Chainguard php-8.1-pcntl 0 8.1.31-r0
Chainguard php-8.1-pcntl-config 0 8.1.31-r0
Chainguard php-8.1-pdo 0 8.1.31-r0
Chainguard php-8.1-pdo-config 0 8.1.31-r0
Chainguard php-8.1-pdo_dblib 0 8.1.31-r0
Chainguard php-8.1-pdo_dblib-config 0 8.1.31-r0
Chainguard php-8.1-pdo_mysql 0 8.1.31-r0
Chainguard php-8.1-pdo_mysql-config 0 8.1.31-r0
Chainguard php-8.1-pdo_odbc 0 8.1.31-r0
Chainguard php-8.1-pdo_odbc-config 0 8.1.31-r0
Chainguard php-8.1-pdo_pgsql 0 8.1.31-r0
Chainguard php-8.1-pdo_pgsql-config 0 8.1.31-r0
Chainguard php-8.1-pdo_sqlite 0 8.1.31-r0
Chainguard php-8.1-pdo_sqlite-config 0 8.1.31-r0
Chainguard php-8.1-pear 0 8.1.31-r0
Chainguard php-8.1-pgsql 0 8.1.31-r0
Chainguard php-8.1-pgsql-config 0 8.1.31-r0
Chainguard php-8.1-phar 0 8.1.31-r0
Chainguard php-8.1-phar-config 0 8.1.31-r0
Chainguard php-8.1-posix 0 8.1.31-r0
Chainguard php-8.1-posix-config 0 8.1.31-r0
Chainguard php-8.1-simplexml 0 8.1.31-r0
Chainguard php-8.1-simplexml-config 0 8.1.31-r0
Chainguard php-8.1-soap 0 8.1.31-r0
Chainguard php-8.1-soap-config 0 8.1.31-r0
Chainguard php-8.1-sockets 0 8.1.31-r0
Chainguard php-8.1-sockets-config 0 8.1.31-r0
Chainguard php-8.1-sodium 0 8.1.31-r0
Chainguard php-8.1-sodium-config 0 8.1.31-r0
Chainguard php-8.1-sysvsem 0 8.1.31-r0
Chainguard php-8.1-sysvsem-config 0 8.1.31-r0
Chainguard php-8.1-sysvshm 0 8.1.31-r0
Chainguard php-8.1-sysvshm-config 0 8.1.31-r0
Chainguard php-8.1-xml 0 8.1.31-r0
Chainguard php-8.1-xml-config 0 8.1.31-r0
Chainguard php-8.1-xmlreader 0 8.1.31-r0
Chainguard php-8.1-xmlreader-config 0 8.1.31-r0
Chainguard php-8.1-xmlwriter 0 8.1.31-r0
Chainguard php-8.1-xmlwriter-config 0 8.1.31-r0
Chainguard php-8.1-xsl 0 8.1.31-r0
Chainguard php-8.1-xsl-config 0 8.1.31-r0
Chainguard php-8.1-zip 0 8.1.31-r0
Chainguard php-8.1-zip-config 0 8.1.31-r0
Chainguard php-8.2 0 8.2.26-r0
Chainguard php-8.2-apache 0 8.2.26-r0
Chainguard php-8.2-bcmath 0 8.2.26-r0
Chainguard php-8.2-bcmath-config 0 8.2.26-r0
Chainguard php-8.2-bz2 0 8.2.26-r0
Chainguard php-8.2-bz2-config 0 8.2.26-r0
Chainguard php-8.2-calendar 0 8.2.26-r0
Chainguard php-8.2-calendar-config 0 8.2.26-r0
Chainguard php-8.2-cgi 0 8.2.26-r0
Chainguard php-8.2-config 0 8.2.26-r0
Chainguard php-8.2-ctype 0 8.2.26-r0
Chainguard php-8.2-ctype-config 0 8.2.26-r0
Chainguard php-8.2-curl 0 8.2.26-r0
Chainguard php-8.2-curl-config 0 8.2.26-r0
Chainguard php-8.2-dbg 0 8.2.26-r0
Chainguard php-8.2-dev 0 8.2.26-r0
Chainguard php-8.2-doc 0 8.2.26-r0
Chainguard php-8.2-dom 0 8.2.26-r0
Chainguard php-8.2-dom-config 0 8.2.26-r0
Chainguard php-8.2-exif 0 8.2.26-r0
Chainguard php-8.2-exif-config 0 8.2.26-r0
Chainguard php-8.2-fileinfo 0 8.2.26-r0
Chainguard php-8.2-fileinfo-config 0 8.2.26-r0
Chainguard php-8.2-fpm 0 8.2.26-r0
Chainguard php-8.2-fpm-config 0 8.2.26-r0
Chainguard php-8.2-ftp 0 8.2.26-r0
Chainguard php-8.2-ftp-config 0 8.2.26-r0
Chainguard php-8.2-gd 0 8.2.26-r0
Chainguard php-8.2-gd-config 0 8.2.26-r0
Chainguard php-8.2-gettext 0 8.2.26-r0
Chainguard php-8.2-gettext-config 0 8.2.26-r0
Chainguard php-8.2-gmp 0 8.2.26-r0
Chainguard php-8.2-gmp-config 0 8.2.26-r0
Chainguard php-8.2-iconv 0 8.2.26-r0
Chainguard php-8.2-iconv-config 0 8.2.26-r0
Chainguard php-8.2-intl 0 8.2.26-r0
Chainguard php-8.2-intl-config 0 8.2.26-r0
Chainguard php-8.2-ldap 0 8.2.26-r0
Chainguard php-8.2-ldap-config 0 8.2.26-r0
Chainguard php-8.2-mbstring 0 8.2.26-r0
Chainguard php-8.2-mbstring-config 0 8.2.26-r0
Chainguard php-8.2-mysqli 0 8.2.26-r0
Chainguard php-8.2-mysqli-config 0 8.2.26-r0
Chainguard php-8.2-mysqlnd 0 8.2.26-r0
Chainguard php-8.2-mysqlnd-config 0 8.2.26-r0
Chainguard php-8.2-odbc 0 8.2.26-r0
Chainguard php-8.2-odbc-config 0 8.2.26-r0
Chainguard php-8.2-opcache 0 8.2.26-r0
Chainguard php-8.2-opcache-config 0 8.2.26-r0
Chainguard php-8.2-openssl 0 8.2.26-r0
Chainguard php-8.2-openssl-config 0 8.2.26-r0
Chainguard php-8.2-pcntl 0 8.2.26-r0
Chainguard php-8.2-pcntl-config 0 8.2.26-r0
Chainguard php-8.2-pdo 0 8.2.26-r0
Chainguard php-8.2-pdo-config 0 8.2.26-r0
Chainguard php-8.2-pdo_dblib 0 8.2.26-r0
Chainguard php-8.2-pdo_dblib-config 0 8.2.26-r0
Chainguard php-8.2-pdo_mysql 0 8.2.26-r0
Chainguard php-8.2-pdo_mysql-config 0 8.2.26-r0
Chainguard php-8.2-pdo_odbc 0 8.2.26-r0
Chainguard php-8.2-pdo_odbc-config 0 8.2.26-r0
Chainguard php-8.2-pdo_pgsql 0 8.2.26-r0
Chainguard php-8.2-pdo_pgsql-config 0 8.2.26-r0
Chainguard php-8.2-pdo_sqlite 0 8.2.26-r0
Chainguard php-8.2-pdo_sqlite-config 0 8.2.26-r0
Chainguard php-8.2-pear 0 8.2.26-r0
Chainguard php-8.2-pgsql 0 8.2.26-r0
Chainguard php-8.2-pgsql-config 0 8.2.26-r0
Chainguard php-8.2-phar 0 8.2.26-r0
Chainguard php-8.2-phar-config 0 8.2.26-r0
Chainguard php-8.2-posix 0 8.2.26-r0
Chainguard php-8.2-posix-config 0 8.2.26-r0
Chainguard php-8.2-simplexml 0 8.2.26-r0
Chainguard php-8.2-simplexml-config 0 8.2.26-r0
Chainguard php-8.2-soap 0 8.2.26-r0
Chainguard php-8.2-soap-config 0 8.2.26-r0
Chainguard php-8.2-sockets 0 8.2.26-r0
Chainguard php-8.2-sockets-config 0 8.2.26-r0
Chainguard php-8.2-sodium 0 8.2.26-r0
Chainguard php-8.2-sodium-config 0 8.2.26-r0
Chainguard php-8.2-sysvsem 0 8.2.26-r0
Chainguard php-8.2-sysvsem-config 0 8.2.26-r0
Chainguard php-8.2-sysvshm 0 8.2.26-r0
Chainguard php-8.2-sysvshm-config 0 8.2.26-r0
Chainguard php-8.2-xml 0 8.2.26-r0
Chainguard php-8.2-xml-config 0 8.2.26-r0
Chainguard php-8.2-xmlreader 0 8.2.26-r0
Chainguard php-8.2-xmlreader-config 0 8.2.26-r0
Chainguard php-8.2-xmlwriter 0 8.2.26-r0
Chainguard php-8.2-xmlwriter-config 0 8.2.26-r0
Chainguard php-8.2-xsl 0 8.2.26-r0
Chainguard php-8.2-xsl-config 0 8.2.26-r0
Chainguard php-8.2-zip 0 8.2.26-r0
Chainguard php-8.2-zip-config 0 8.2.26-r0
Chainguard php-8.3 0 8.3.14-r0
Chainguard php-8.3-apache 0 8.3.14-r0
Chainguard php-8.3-bcmath 0 8.3.14-r0
Chainguard php-8.3-bcmath-config 0 8.3.14-r0
Chainguard php-8.3-bz2 0 8.3.14-r0
Chainguard php-8.3-bz2-config 0 8.3.14-r0
Chainguard php-8.3-calendar 0 8.3.14-r0

Related vulnerabilities