CRITICAL✓ PATCH🇬🇧 English

CVE-2024-11236

PHP: integer overflow w ldap_escape() prowadzący do out-of-bounds write

CVSS 9.8v3.1pub. 2024-11-24upd. 2025-11-03

Podatność w funkcji ldap_escape() w PHP na systemach 32-bitowych pozwala na przepełnienie liczby całkowitej (integer overflow) przy przetwarzaniu zbyt długich ciągów wejściowych, co skutkuje zapisem poza granicami bufora (out-of-bounds write). Błąd otrzymał ocenę CVSS 9.8, co klasyfikuje go jako krytyczny.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Funkcja ldap_escape() nie kontroluje prawidłowo długości przekazywanych ciągów wejściowych na systemach 32-bitowych. Gdy atakujący dostarczy odpowiednio długi ciąg znaków, dochodzi do przepełnienia zmiennej całkowitej (CWE-190), co powoduje błędne obliczenie rozmiaru bufora. W konsekwencji zapis danych odbywa się poza przydzielonym obszarem pamięci (CWE-787, out-of-bounds write), co może prowadzić do uszkodzenia sterty lub stosu procesu.

Skutki

Atakujący może zdalnie, bez uwierzytelnienia, doprowadzić do wykonania arbitralnego kodu (RCE), ujawnienia poufnych danych lub odmowy usługi (crash aplikacji). Pełna triada CIA jest zagrożona, co potwierdza maksymalny wynik CVSS dla składowych C/I/A.

Mitygacja

Należy zaktualizować PHP do wersji 8.1.31, 8.2.26 lub 8.3.14 (odpowiednio do używanej gałęzi). Dostępne są również patche dla dystrybucji Debian (komunikat debian-lts-announce z grudnia 2024). Do czasu aktualizacji należy rozważyć ograniczenie długości danych wejściowych przekazywanych do ldap_escape() na poziomie aplikacji lub filtrowanie ich przed przetworzeniem.

Kogo dotyczy

PHP w wersjach 8.1.x przed 8.1.31, 8.2.x przed 8.2.26 oraz 8.3.x przed 8.3.14, działające na systemach 32-bitowych i korzystające z funkcji ldap_escape().

Uwagi

Podatność dotyczy wyłącznie platform 32-bitowych. Na systemach 64-bitowych integer overflow w tym kontekście nie występuje. Poprawka opisana jest w GitHub Security Advisory GHSA-5hqh-c84r-qjcv.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • PHP

    APP
    Php
    8.1.0 – 8.1.31 (bez)8.2.0 – 8.2.26 (bez)8.3.0 – 8.3.14 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
Memory
CWE
Referencje

Powiązane podatności

CVE-2024-4577CRITICAL9.8⚠ KEVPL ✓ten sam produkt

PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit

CVE-2012-1823CRITICAL9.8⚠ KEVten sam produkt

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi)...

CVE-2026-6722CRITICAL9.5PL ✓ten sam produkt

Use-after-free w rozszerzeniu SOAP PHP umożliwiające RCE

CVE-2024-11235CRITICAL9.2PL ✓ten sam produkt

PHP use-after-free przez __set lub ??= z wyjątkami — RCE

CVE-2022-31631CRITICAL9.1PL ✓ten sam produkt

PHP PDO SQLite — błędne cytowanie ciągów prowadzące do SQL injection