OpenWrt Project — это операционная система Linux, предназначенная для встраиваемых устройств. В версиях до 24.10.6 и 25.12.1 демон mdns имеет уязвимость переполнения буфера на основе стека в функции parse_question. Проблема вызвана запросами PTR для доменов обратного DNS (.in-addr.arpa и .ip6.arpa).
Пакеты DNS, полученные через UDP-порт 5353, расширяются с помощью dn_expand в глобальный буфер размером 8096 байт (name_buffer), который затем копируется через неограниченную функцию strcpy в фиксированный 256-байтовый буфер стека при обработке запросов TYPE_PTR. Переполнение возможно, поскольку dn_expand преобразует непечатаемые байты ASCII (например, 0x01) в многосимвольные восьмеричные представления (например, \001), значительно увеличивая расширенное имя за пределы емкости буфера стека. Созданный DNS-пакет может использовать такое поведение расширения для переполнения буфера стека, что делает уязвимость доступной посредством обычной обработки многоадресного DNS-пакета.
Эта проблема исправлена в версиях 24.10.6 и 25.12.1.
Показать оригинальное описание (EN)
OpenWrt Project is a Linux operating system targeting embedded devices. In versions prior to 24.10.6 and 25.12.1, the mdns daemon has a Stack-based Buffer Overflow vulnerability in the parse_question function. The issue is triggered by PTR queries for reverse DNS domains (.in-addr.arpa and .ip6.arpa). DNS packets received on UDP port 5353 are expanded by dn_expand into an 8096-byte global buffer (name_buffer), which is then copied via an unbounded strcpy into a fixed 256-byte stack buffer when handling TYPE_PTR queries. The overflow is possible because dn_expand converts non-printable ASCII bytes (e.g., 0x01) into multi-character octal representations (e.g., \001), significantly inflating the expanded name beyond the stack buffer's capacity. A crafted DNS packet can exploit this expansion behavior to overflow the stack buffer, making the vulnerability reachable through normal multicast DNS packet processing. This issue has been fixed in versions 24.10.6 and 25.12.1.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Openwrt Openwrt
cpe:2.3:o:openwrt:openwrt:*:*:*:*:*:*:*:*
|
— |
24.10.6
|
|
Openwrt Openwrt
cpe:2.3:o:openwrt:openwrt:*:*:*:*:*:*:*:*
|
25.12.0
|
25.12.1
|