CVE-2026-6722
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 56 - wyżej niż 56% wszystkich znanych CVE
Streszczenie
W PHP w wersjach 8.2.* przed 8.2.31, 8.3.* przed 8.3.31, 8.4.* przed 8.4.21 i 8.5.* przed 8.5.6 mechanizm deduplikacji obiektów rozszerzenia SOAP przechowuje wskaźniki do obiektów PHP w globalnej mapie bez zwiększania ich liczników referencji. Gdy węzeł apache:Map zawiera zduplikowane klucze, przetworzenie drugiego wpisu nadpisuje pierwszy w tymczasowej mapie wyników, zwalniając oryginalny obiekt PHP, podczas gdy jego stary wskaźnik pozostaje w mapie. Późniejsze odwołanie href do zwolnionego węzła może skopiować wiszący wskaźnik do wyniku. Ponieważ alokacje łańcuchów PHP mogą odzyskać zwolniony obszar pamięci, atakujący kontrolujący treść żądania SOAP może wykorzystać tę podatność use-after-free do zdalnego wykonania kodu.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolny kod na serwerze PHP poprzez wysłanie specjalnie spreparowanego żądania SOAP, co może prowadzić do pełnego przejęcia kontroli nad aplikacją.
Rekomendacja
Należy natychmiast zaktualizować PHP do wersji 8.2.31, 8.3.31, 8.4.21, 8.5.6 lub nowszej, które zawierają poprawkę dla tej podatności.
Oryginalny opis (angielski, źródło NVD)
In PHP versions 8.2.* before 8.2.31, 8.3.* before 8.3.31, 8.4.* before 8.4.21, and 8.5.* before 8.5.6, the SOAP extension's object deduplication mechanism stores pointers to PHP objects in a global map without incrementing their reference counts. When an apache:Map node contains duplicate keys, processing the second entry overwrites the first in the temporary result map, freeing the original PHP object while its stale pointer remains in the map. A subsequent href reference to the freed node can copy the dangling pointer into the result. As PHP string allocations can reclaim the freed memory region, an attacker with control over the SOAP request body can exploit this use-after-free to achieve remote code execution.

