NLnet Labs Unbound w wersjach od 1.14.0 do 1.25.0 zawiera podatność locking inconsistency — przy spełnieniu określonych warunków (multi-threading, RPZ XFR reload, strefa RPZ z triggerami 'rpz-nsip'/'rpz-nsdname') może dojść do heap use-after-free i awarii. Podatność można wykorzystać, gdy serwer Unbound działa w trybie multi-threaded ze strefą RPZ zawierającą triggery 'rpz-nsip'/'rpz-nsdname' oraz wykonywane jest XFR dla tej strefy. Jeśli XFR zachodzi w tym samym czasie, gdy inny wątek odczytuje strefę RPZ, wątek odczytujący może nie utrzymywać blokady wystarczająco długo, a wątek aplikujący XFR uwolni obiekty, które czytnik zamierza przetwarzać, powodując use-after-free. Unbound 1.25.1 zawiera poprawkę do kodu blokady.
▸ Pokaż oryginał (EN)
NLnet Labs Unbound 1.14.0 up to and including version 1.25.0 has a locking inconsistency vulnerability that when certain conditions are met (multi-threaded, RPZ XFR reload, RPZ zone with 'rpz-nsip'/'rpz-nsdname' triggers) it could result in heap use-after-free and eventual crash. An adversary can exploit the vulnerability if conditions are first met on a vulnerable Unbound, i.e., multi-threaded, an RPZ zone with 'rpz-nsip'/'rpz-nsdname' triggers and an ongoing XFR for that RPZ zone. Local RPZ files do not trigger the vulnerability. If the timing is right and an XFR happens at the same time another thread needs to read that RPZ zone, the reader may not hold the lock long enough and the thread applying the XFR may free objects that the reader is about to walk causing the use-after-free. Unbound 1.25.1 contains a patch with a fix to the locking code.
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U/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:AmberNlnetlabs Unbound
APPNlnetlabs1.14.0 – 1.25.1 (bez)
Powiązane podatności
Use-after-free w validatorze DNSSEC Unbound — RCE i DoS
Integer overflow w Unbound przed 1.9.5 prowadzący do zapisu poza buforem
Integer overflow w alokatorze regionalnym Unbound DNS (przed wersją 1.9.5)
Integer overflow w Unbound przed wersją 1.9.5 (makro ALIGN_UP)
Out-of-bounds write w Unbound przed wersją 1.9.5 (sldns_bget_token_par)