Неконтролируемая рекурсия в Unmarshal в encoding/xml до Go 1.17.12 и Go 1.18.4 позволяет злоумышленнику вызвать панику из-за исчерпания сте…
Неконтролируемая рекурсия в Unmarshal в encoding/xml до Go 1.17.12 и Go 1.18.4 позволяет злоумышленнику вызвать панику из-за исчерпания стека путем демаршалинга XML-документа в структуру Go, которая имеет вложенное поле, использующее тег поля 'any'.
Продукт управляет группой объектов или ресурсов и выполняет отдельное выделение памяти для каждого объекта, однако не ограничивает надлежащим образом суммарный объём памяти, потребляемой всеми объектами в совокупности.
https://cwe.mitre.org/data/definitions/1325.html →Открыть в коллекции CWE →Программный продукт не обеспечивает надлежащего контроля за глубиной рекурсии, что приводит к избыточному потреблению ресурсов, таких как выделенная память или стек программы.
https://cwe.mitre.org/data/definitions/674.html →Открыть в коллекции CWE →Злоумышленник вынуждает цель выделять избыточные ресурсы для обслуживания его запроса, тем самым сокращая объём ресурсов, доступных для легитимных сервисов, и ухудшая работу или приводя к отказу в обслуживании. Обычно данная атака направлена на распределение памяти, однако объектом атаки может быть любой конечный ресурс цели, включая пропускную способность, вычислительные циклы или иные ресурсы. В отличие от исчерпания ресурсов через флудинг, данная атака использует не большое количество запросов, а один или несколько тщательно сформированных запросов, вынуждающих цель выделять избыточные ресурсы для их обработки. Нередко атака использует уязвимость в цели, заставляя её выделять объём ресурсов, значительно превышающий потребности нормального запроса.
https://capec.mitre.org/data/definitions/130.html →Открыть в коллекции CAPEC →Приложениям нередко требуется преобразовывать данные из/в формат данных (например, XML и YAML) с использованием анализатора. Злоумышленник может иметь возможность внедрять данные, способные оказывать негативное воздействие на анализатор в процессе обработки. Многие языки форматов данных допускают определение структур, схожих с макросами, способных упрощать создание сложных структур. Вкладывая эти структуры друг в друга и вызывая многократную подстановку данных, злоумышленник может вынудить анализатор потреблять больше ресурсов при обработке, что ведёт к избыточному потреблению памяти и нагрузке на процессор.
https://capec.mitre.org/data/definitions/230.html →Открыть в коллекции CAPEC →Злоумышленник внедряет чрезмерно большие полезные нагрузки сериализованных данных в анализатор в процессе обработки данных для оказания негативного воздействия на анализатор, такого как исчерпание системных ресурсов и выполнение произвольного кода.
https://capec.mitre.org/data/definitions/231.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| container-tools | Отслеживается | |
| container-tools | Отслеживается | |
| go-toolset-1.17-golang | Отслеживается | |
| golang | Отслеживается | |
| golang-1.11 | Отслеживается | |
| golang-1.11 | Отслеживается | |
| golang-1.13 | Отслеживается | |
| golang-1.13 | Отслеживается | |
| golang-1.13 | Отслеживается | |
| golang-1.13 | Отслеживается | |
| golang-1.13 | Отслеживается | |
| golang-1.15 | Отслеживается | |
| golang-1.15 | Отслеживается | |
| golang-1.16 | Отслеживается | |
| golang-1.16 | Отслеживается | |
| golang-1.16 | Отслеживается | |
| golang-1.16 | Отслеживается | |
| golang-1.17 | Отслеживается | |
| golang-1.18 | Отслеживается | |
| golang-1.18 | Отслеживается |