Podatność typu stack-based buffer overflow w demonie mdns systemu OpenWrt pozwala nieuwierzytelnionemu atakującemu na przepełnienie bufora stosu poprzez spreparowane zapytanie DNS. W konsekwencji możliwe jest zdalne wykonanie kodu (RCE) na podatnym urządzeniu.
▸ Pokaż oryginał (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 match_ipv6_addresses function, triggered when processing PTR queries for IPv6 reverse DNS domains (.ip6.arpa) received via multicast DNS on UDP port 5353. During processing, the domain name from name_buffer is copied via strcpy into a fixed 256-byte stack buffer, and then the reverse IPv6 request is extracted into a buffer of only 46 bytes (INET6_ADDRSTRLEN). Because the length of the data is never validated before this extraction, an attacker can supply input larger than 46 bytes, causing an out-of-bounds write. This allows a specially crafted DNS query to overflow the stack buffer in match_ipv6_addresses, potentially enabling remote code execution. This issue has been fixed in versions 24.10.6 and 25.12.1.
Demon mdns w funkcji match_ipv6_addresses przetwarza zapytania PTR dla odwróconych domen IPv6 (*.ip6.arpa) odbierane przez multicast DNS na porcie UDP 5353. Nazwa domeny kopiowana jest przez strcpy do stałego bufora 256 bajtów na stosie, po czym odwrócone żądanie IPv6 wyodrębniane jest do bufora o rozmiarze zaledwie 46 bajtów (INET6_ADDRSTRLEN). Ponieważ długość danych wejściowych nie jest nigdy weryfikowana przed ekstrakcją, atakujący może dostarczyć dane dłuższe niż 46 bajtów, powodując zapis poza granicami bufora (out-of-bounds write). Specjalnie spreparowane zapytanie DNS prowadzi tym samym do przepełnienia bufora stosu w funkcji match_ipv6_addresses.
Atakujący może doprowadzić do zdalnego wykonania dowolnego kodu (RCE) na urządzeniu z podatną wersją OpenWrt, potencjalnie przejmując nad nim pełną kontrolę. Ze względu na wysoki wpływ na poufność, integralność i dostępność zarówno systemu, jak i zasobów sieciowych, skutki kompromitacji mogą obejmować również dalszy lateral movement w sieci.
Należy zaktualizować OpenWrt do wersji 24.10.6 lub 25.12.1, w których podatność została naprawiona. Patche oraz szczegóły dostępne są w repozytoriach projektu: https://github.com/openwrt/openwrt/releases/tag/v24.10.6 oraz https://github.com/openwrt/openwrt/releases/tag/v25.12.1. Jako tymczasowe obejście warto rozważyć zablokowanie ruchu multicast DNS (UDP port 5353) z niezaufanych segmentów sieci.
OpenWrt w wersjach wcześniejszych niż 24.10.6 oraz wcześniejszych niż 25.12.1 — dotyczy urządzeń wbudowanych (embedded) z uruchomionym demonem mdns.
Podatność dotyczy wyłącznie usługi mdns nasłuchującej na porcie UDP 5353 (multicast DNS). Atak możliwy jest z poziomu sieci lokalnej lub segmentu sieciowego, w którym rozgłaszany jest ruch multicast — wektor sieciowy (AV:N) przy wysokiej złożoności ataku (AC:H) według wektora CVSS 4.0.
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XOpenwrt
OSOpenwrt< 24.10.625.12.0 – 25.12.1 (bez)
Powiązane podatności
Stack-based Buffer Overflow w demonie mdns OpenWrt — przepełnienie stosu przez PTR query
Out of bounds write w sterowniku wlan AP — eskalacja uprawnień na układach MediaTek
Out-of-bounds write w sterowniku WLAN AP MediaTek — privilege escalation
Out-of-bounds write w sterowniku WLAN AP MediaTek – privilege escalation
Brak weryfikacji uprawnień w sterowniku WLAN AP MediaTek — zdalne eskalowanie przywilejów