Описание
DoS attack via DOMNode::C14N()
Researcher: Nikita Sveshnikov (Positive Technologies)
In DOMNode::C14N(), improper removal of a xmlns libxml2 attribute from a doubly linked list can lead to a corrupt, circular linked list. The linked list is iterated in many places in PHP and libxml2, leading to DoS through segfaults, or temporal and spatial resource starvation.
The attribute is removed incorrectly here:
Notice the attr->prev = attr->next; instead of attr->prev->next = attr->next;. The attribute is later (correctly) restored here:
After both procedures, the following graph:
Would result in this graph:
Continuously following next will result in an infinite loop.
Пакеты
php
>=8.4.0, <8.4.21
8.4.21
php
>=8.5.0, <8.5.6
8.5.6
Связанные уязвимости
In PHP versions 8.4.* before 8.4.21 and 8.5.* before 8.5.6, DOMNode::C14N() method may process the XML data incorrectly, causing a circular linked list in the data structure representing the XML document. This may cause subsequent processing of the XML document to enter infinite loop, causing denial of service in the processing application.
In PHP versions 8.4.* before 8.4.21 and 8.5.* before 8.5.6, DOMNode::C14N() method may process the XML data incorrectly, causing a circular linked list in the data structure representing the XML document. This may cause subsequent processing of the XML document to enter infinite loop, causing denial of service in the processing application.
In PHP versions 8.4.* before 8.4.21 and 8.5.* before 8.5.6, DOMNode::C14N() method may process the XML data incorrectly, causing a circular linked list in the data structure representing the XML document. This may cause subsequent processing of the XML document to enter infinite loop, causing denial of service in the processing application.
In PHP versions 8.4.* before 8.4.21 and 8.5.* before 8.5.6, DOMNode::C ...
Уязвимость метода DOMNode::C14N() интерпретатора языка программирования PHP , позволяющая нарушителю вызвать отказ в обслуживании