Описание
NULL pointer dereference in SOAP apache:Map decoder with missing
to_zval_map() in ext/soap/php_encoding.c decodes apache:Map nodes. The <key> branch correctly guards against missing keys, but the <value> branch rechecks xmlKey instead of xmlValue:
In addition, master_to_zval_int() accesses data->properties without a NULL check, where data corresponds to the missing <value> node. This branch is reachable when SOAP_GLOBAL(typemap) is set, i.e. when the SOAP server has a typemap configured. By embedding an apache:Map node with a missing <value> node into the request, the process will segfault with a NULL pointer dereference violation. Under the described circumstances, DoS becomes trivial with the following example:
Пакеты
php
>=8.2.0, <8.2.31
8.2.31
php
>=8.3.0, <8.3.31
8.3.31
php
>=8.4.0, <8.4.21
8.4.21
php
>=8.5.0, <8.5.6
8.5.6
Связанные уязвимости
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, when a SOAP server has a typemap configured, the decoding process contains a mistake which checks the wrong variable in case of missing value element. This leads to dereferences a NULL pointer, causing a segmentation fault. This allows a remote unauthenticated attacker to crash the PHP SOAP server process, resulting in denial of service.
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, when a SOAP server has a typemap configured, the decoding process contains a mistake which checks the wrong variable in case of missing value element. This leads to dereferences a NULL pointer, causing a segmentation fault. This allows a remote unauthenticated attacker to crash the PHP SOAP server process, resulting in denial of service.
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, when a SOAP server has a typemap configured, the decoding process contains a mistake which checks the wrong variable in case of missing value element. This leads to dereferences a NULL pointer, causing a segmentation fault. This allows a remote unauthenticated attacker to crash the PHP SOAP server process, resulting in denial of service.
NULL pointer dereference in SOAP apache:Map decoder with missing <value>
In PHP versions 8.2.* before 8.2.31, 8.3.* before 8.3.31, 8.4.* before ...