Door een kritieke OpenWrt DHCPv6-fout kunnen niet-geverifieerde aanvallers code als root uitvoeren

OpenWrt heeft versie 24.10.8 uitgebracht om een ​​kritieke DHCPv6-stackoverflow en een bredere reeks op afstand te activeren fouten in netwerkservices die standaard zijn ingeschakeld, te dichten.

Het kritieke probleem, bijgehouden als CVE-2026-53921 en met een beoordeling van 9,8 op CVSS 3.1 in OpenWrt’s GitHub-advies, kan een niet-geverifieerde aanvaller die de DHCPv6-server kan bereiken een stapelbuffer in odhcpd overschrijven via een vervaardigd DHCPv6-VERZOEK.

odhcpd draait als root, en het advies merkt op dat embedded hardware gewoonlijk geen stack canaries en adresruimte-indelingsrandomisatie (ASLR) heeft, waardoor het uitvoeren van code een realistisch resultaat is op typische apparaten.

Het advies omvat openbare Python proof-of-concept-code voor beide gedocumenteerde overlooppaden. Gebruikers op de 24.10-tak moeten 24.10.8 installeren, terwijl gebruikers op 25.12 25.12.5 moeten installeren; firmware-images zijn beschikbaar via de OpenWrt Firmware Selector.

Vanaf 28 juli rapporteerden de beoordeelde OpenWrt-materialen geen uitbuiting in het wild. De fout ontbrak ook in de Known Exploited Vulnerabilities (KEV)-catalogusversie 2026.07.27 van CISA, hoewel de afwezigheid in KEV niet aantoont dat er geen uitbuiting heeft plaatsgevonden.

De release kwam samen met een afzonderlijke AI-ondersteunde audit door Hacker House, waarbij zwakke punten op het gebied van commando-injectie, path-traversal en cross-site scripting (XSS) in optionele LuCI-componenten werden geïdentificeerd. OpenWrt heeft tijdens het voorbereiden van de oplossingen een afzonderlijk probleem met opgeslagen XSS gevonden en een ontbrekende bescherming tegen cross-site request forgery (CSRF).

Deze afzonderlijke LuCI-fixes maakten geen deel uit van OpenWrt 24.10.8 en werden op 28 juli nog beoordeeld.

Een pakket naar de standaard DHCP-server

Het advies dat is gekoppeld aan CVE-2026-53921 documenteert twee onafhankelijke overflow-sites in het DHCPv6-verzoekverwerkingspad. In beide gevallen laten de vervaardigde IA-opties onvoldoende ruimte over in een vaste stapelbuffer van 512 bytes voordat de code aanvullende antwoordgegevens toevoegt zonder voldoende grenscontrole.

De laatste trigger is een niet-geverifieerd DHCPv6-VERZOEK dat naar UDP-poort 547 wordt verzonden. De proof of concept van het eerste pad creëert vijf IA_NA-bindingen met een eerdere SOLICIT; de tweede wordt geactiveerd door een enkel vervaardigd VERZOEK.

Het advies vermeldt de odhcpd-master op commit e432dd6 en alle eerdere versies die dhcpv6_ia_handle_IAs() en build_ia() bevatten, zoals getroffen. OpenWrt vermeldt 24.10.8 en 25.12.5 als de ondersteunde releases met de relevante odhcpd-beveiligingsupdate.

Het adviesbureau koppelt zijn twee gedocumenteerde sites aan CVE-2026-53921, maar de release-opmerkingen van 24.10.8 vermelden de RECONF_ACCEPT-overflow afzonderlijk als een zeer ernstig probleem zonder een CVE. OpenWrt repareerde de onderliggende schrijfbewerkingen door de resterende responsbuffercapaciteit te controleren voordat de betrokken gegevens werden toegevoegd.

De adviesgroepen van OpenWrt overspoelen beide sites onder CVE-2026-53921, terwijl de release-opmerkingen RECONF_ACCEPT afzonderlijk vermelden zonder een CVE. De exacte mapping blijft onduidelijk.

In de release notes van OpenWrt wordt beschreven dat de fout bereikbaar is voor een aan het netwerk grenzende, niet-geverifieerde aanvaller. De CVSS 3.1-vector van het advies gebruikt AV:N (netwerk), niet AV:A (aangrenzend), en geen van beide bronnen verklaart het verschil. Een aanvaller heeft nog steeds netwerktoegang tot de DHCPv6-service nodig. Succesvolle exploitatie kan de aanvaller controle over de router geven in plaats van alleen maar de service te laten crashen.

De release 24.10.8 pakt ook andere pre-authenticatiezwakheden in odhcpd aan, waaronder out-of-bounds write, use-after-free, geheugenvrijgave, denial of service, stack over-read en neighbour-discovery proxy-spoofing. Andere oplossingen voor de standaardservice omvatten drie bugs voor het smokkelen van HTTP-verzoeken in uhttpd en een fout bij het injecteren van DHCPv6-hostnamen, bijgehouden als CVE-2026-62948, die opgeslagen XSS kan produceren wanneer een beheerder de LuCI-leasepagina opent.

Dezelfde release bevat CVE-2026-62947 in cgi-io, waarmee willekeurige root-leesbare bestanden kunnen worden weergegeven via padtraversal. Dat probleem vereist een geverifieerde sessie met de cgi-io-downloadtoestemming en een toepasselijke wildcard-leestoekenning voor bestanden. Het is geen anonieme fout bij het lezen van bestanden.

OpenWrt 24.10 wordt momenteel beveiligd en het einde van de levensduur wordt verwacht in september 2026. Het project beveelt aan om vóór die tijd naar de 25.12-serie te migreren. Voor pakketten die afzonderlijk van de firmware-image zijn geïnstalleerd, zijn mogelijk ook afzonderlijke updates nodig.

De patches worden nog beoordeeld

Matthew Hickey, ook bekend als Hacker Fantastic en CTO en medeoprichter van Hacker House, zei publiekelijk dat er oplossingen zijn vrijgegeven voor problemen met het uitvoeren van code op afstand en het doorlopen van paden die hij aan OpenWrt rapporteerde.

OpenWrt-onderhouder Hauke ​​Mehrtens publiceerde op 26 juli LuCI pull request #8878, waarbij Hickey en Hacker House expliciet werden vermeld. Uit een controle door The Hacker News op 28 juli bleek dat het pull-verzoek nog steeds open was en niet was samengevoegd.

Hacker House zei dat het de hoofdtakken van zowel LuCI als uhttpd heeft gecontroleerd met behulp van LuCI commit 3b4f44d8e3d9d5de35127b42dd449babe2d19fe5 vanaf 27 mei en uhttpd commit 7b1bec45826bd78c8afc993435bdc0f1df2fe399 vanaf 13 juni.

Het beschreef er drie als pre-authenticatiepaden om apparaten in gevaar te brengen: directory traversal in luci-app-bmx7, opgeslagen XSS in luci-app-olsr en opdrachtinjectie in luci-app-commands. Voor de overige vier waren LuCI-inloggegevens vereist en deze konden worden gebruikt om opdrachten op het apparaat uit te voeren.

Het bedrijf zei dat vijf bevindingen aanvankelijk werden behandeld als paden voor opdrachtuitvoering na authenticatie, maar uit de tests van OpenWrt bleek dat één geval van luci-app-opdrachten zonder sessie zou kunnen werken wanneer een beheerder een opdracht zowel openbaar als geparametriseerd had geconfigureerd. De OLSR-payload kan ook worden geïnjecteerd zonder LuCI-inloggegevens, hoewel deze alleen wordt uitgevoerd wanneer een beheerder de burenpagina opent.

Het pull-verzoek van OpenWrt wijst niet één commit toe aan elk van de zeven inzendingen van Hacker House. Binnen pull request #8878 komen zes commits overeen met het rapport van Hacker House, twee adresseren aanvullende beveiligingszwakheden die OpenWrt heeft gevonden tijdens het voorbereiden van de oplossingen, en één corrigeert een niet-beveiligingsprobleem met de bestandsnaam. Het pull-verzoek identificeert ook twee bevindingen uit dezelfde rapportset die al in de master waren opgelost, zodat de zeven inzendingen niet één-op-één worden toegewezen aan de negen commits.

The Hacker News wacht nog steeds op de reactie van OpenWrt over de CVE-toewijzing, de getroffen versies en de patchstatus.

De beveiligingswijzigingen in pull-aanvraag #8878 omvatten:

  • luci-app-opdrachten: Een bare pipe-teken gaf het argument allow-list van de toepassing door en stond toe dat opdrachten als root werden uitgevoerd. OpenWrt ontdekte dat het pad ook werkte zonder een sessiecookie of CSRF-token wanneer een beheerder een opdracht had geconfigureerd met zowel publieke ‘1’ als param ‘1’.
  • luci-app-ddns: De instelling ddns_dateformat kon opdrachten in een root-run-bewerking injecteren, terwijl service_name het doorlopen van paden toestond. OpenWrt heeft tijdens het voorbereiden van de oplossingen een afzonderlijk opgeslagen XSS-probleem gevonden.
  • luci-proto-openvpn: Door de aanvaller bestuurde configuratiewaarden konden shell-opdrachten bereiken via het sleuteltype, terwijl sleutelmapparameters pad-traversale omstandigheden blootlegden.
  • luci-app-olsr: Een kwaadaardig mesh-knooppunt kan een vervaardigde hostnaam aankondigen die een script in de browser uitvoert wanneer een beheerder de OLSR-burenpagina bekijkt.

Het niet-geverifieerde luci-app-opdrachtenpad heeft materiële randvoorwaarden. De optionele applicatie moet zijn geïnstalleerd en een beheerder moet een geparametriseerde opdracht opzettelijk openbaar hebben gemaakt. Voor de andere paden voor opdrachtuitvoering is geverifieerde LuCI-toegang en de relevante configuratiemachtigingen vereist. Succesvolle exploitatie voert opdrachten uit als root. Het zijn geen algemene pre-authenticatiefouten die elke OpenWrt-router treffen.

Een afzonderlijk pull-verzoek voor ddns-scripts adresseert dezelfde onveilige instelling ddns_dateformat buiten LuCI. Een gedelegeerde DDNS-operator zou de shell-syntaxis in de waarde kunnen plaatsen, waarbij de uitvoering plaatsvindt wanneer de updater de volgende keer start, ook na herconfiguratie of opnieuw opstarten. Uit dezelfde controle van 28 juli bleek dat het pull-verzoek open en niet-samengevoegd was.

Twee andere bevindingen uit dezelfde rapportset waren al opgelost in de masterbranch van LuCI: een niet-geverifieerd pad dat door het lezen van bestanden wordt doorkruist in luci-app-bmx7 en commando-injectie via ttyd_start in luci-app-dockerman. OpenWrt zei dat beide nog steeds backports nodig hadden om branches vrij te geven.

Hacker House zei dat de BMX7-traversal was opgenomen in de openbaarmaking van 8 juli en karakteriseerde het als een pre-authenticatiepad naar apparaatcompromis. Het openbare advies van OpenWrt beschrijft de impact nauwer als niet-geverifieerde toegang tot bestanden die leesbaar zijn door het CGI-proces en crediteert nebusecurity als de verslaggever. Hacker House zei dat het niet weet of de rapporten duplicaten waren of waarom de kredietwaardigheid verschilt.

AI in Discovery en Patch Review

Hacker House beschreef de OpenWrt-audit als een proces van inferentie-fuzzing in vier fasen dat begint met een dreigingsmodel. De methode onderzoekt herhaaldelijk de code om een ​​brede verzameling mogelijke kwetsbaarheden te genereren.

Omdat die pool veel valse positieven bevat, wordt in de laatste fase een model met hogere precisie gebruikt om de resultaten te filteren. Onderzoekers bevestigen vervolgens handmatig de resterende bevindingen in de code en, waar praktisch, op een draaiend systeem voordat ze deze rapporteren.

Hacker House zei dat Qwen 3.6 35B Heretic wordt gebruikt voor de op herinneringen gerichte fase van inferentie-fuzzing. Voor de vierde fase van de triage van open-sourceprojecten wordt een grensmodel gebruikt, zoals Claude Opus 4.6 van Anthropic. Qwen 3.5 115B kan worden vervangen wanneer een audit volledig offline moet worden uitgevoerd, waardoor de privébroncode binnen de omgeving van de klant kan blijven.

Na de triage inspecteren onderzoekers de code handmatig en bevestigen ze, waar praktisch, het probleem tijdens runtime met behulp van standaard dynamische applicatiebeveiligingstests (DAST). Hacker House zei dat het alleen bevindingen indient waarvan het heeft bevestigd dat het kwetsbaarheden zijn, hoewel de payloads van exploits mogelijk moeten worden aangepast tijdens handmatige validatie.

Het bedrijf zei dat het open-sourceprojecten zeven tot tien werkdagen de tijd geeft om een ​​melding te bevestigen en vervolgens met beheerders samenwerkt volgens de door hen gewenste hersteltijdlijn. Als er geen bevestiging komt, kan het beperkte details publiceren om het project aan te moedigen te reageren of de bevinding aan te pakken.

OpenWrt gebruikte AI ook tijdens delen van het herstelproces. Verschillende voorgestelde commits bevatten een Assisted-by: Claude:claude-opus-5-trailer, en een geautomatiseerde beoordeling van de LuCI-pull-aanvraag zegt dat deze is gegenereerd met Claude Code. Modellen droegen daarom bij aan de ontdekking, triage en patchbeoordeling van kandidaten, terwijl onderzoekers en beheerders de bevindingen en oplossingen handmatig verifieerden.

Voor geleverde oplossingen moeten gebruikers OpenWrt 24.10.8 of 25.12.5 installeren en afzonderlijk geïnstalleerde pakketten bijwerken. Beheerders moeten ook gedelegeerde LuCI-machtigingen bekijken, optionele applicaties verwijderen die ze niet gebruiken, en controleren of opdrachten in luci-app-opdrachten zowel openbaar als geparametriseerd zijn.

Vanaf 28 juli vermeldden de twee pull-aanvragen geen CVE’s, CVSS-scores, volledige getroffen releasebereiken of vaste stabiele pakketversies. Geen van beide maakte melding van uitbuiting in het wild.

Thijs Van der Does