Een geheugenbeschadigingsfout in de Open vSwitch (OVS) datapath van de Linux kernel stelt gewone lokale gebruikers in staat om rootrechten te verkrijgen op een breed scala aan standaard geconfigureerde distributies. Deze kwetsbaarheid, geregistreerd als CVE-2026-64531 en door de ontdekker Asim Manizada OVSwrap genoemd, werd op 28 juli 2026 openbaar gemaakt. De fout bevindt zich in de kernel datapath en niet in de gebruikersruimte daemon ovs-vswitchd.
Volgens Manizada is er voor een aanvaller geen bestaande OVS-bridge, actieve ovs-vswitchd of host-level CAP_NET_ADMIN nodig. Op systemen waar de OVS kernel datapath beschikbaar is en ongeprivilegieerde gebruikersnamespaces zijn ingeschakeld, kan een gewone gebruiker privé gebruikers- en netwerknamespaces aanmaken met unshare -Urn, binnen die namespace CAP_NET_ADMIN verkrijgen en zo toegang krijgen tot het kwetsbare flow-installatiepad. Indien het openvswitch kernelmodule geïnstalleerd maar niet geladen is, kan het automatisch geladen worden door het opzoeken van de Generic Netlink familienaam, waardoor een lege lsmod-uitvoer geen garantie biedt op veiligheid.
De upstream patch werd op 24 juli 2026 in de stabiele kerneltrees opgenomen. Waar nog geen gepatchte vendor kernel beschikbaar is en Open vSwitch niet noodzakelijk is, wordt geadviseerd om toekomstige module-ladingen te blokkeren, of indien het module al geladen is, deze te ontladen of het systeem te herstarten. Manizada meldde de kwetsbaarheid op 19 juni aan security@kernel.org en de OVS-beheerders. De eerste gepatchte upstream releases zijn Linux 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40 en 7.1.5. Versies 6.13 tot en met 6.17, 6.19 en 7.0 krijgen geen upstream fixes meer. Omdat distributiekernels vaak backports en downstream wijzigingen bevatten, is het raadzaam om de vendor tracker te raadplegen voor de meest betrouwbare status.
De kwetsbaarheid ontstaat doordat Open vSwitch gegenereerde flow-acties opslaat als Netlink-attributen met een 16-bits brede nla_len veld, wat een limiet van 65.535 bytes oplegt aan een enkele geneste attribuut. Deze onveilige toewijzing bestond al 13 jaar, maar een limiet van 32 KiB op de totale gegenereerde actie stroom hield de geneste actie onder deze grens. Een wijziging in maart 2025 verwijderde deze limiet vanwege onvoorspelbare fouten, wat de oudere truncatiefout blootlegde. De enabling commit besprak betrouwbaarheid en gebruikersfouten, maar niet de beveiligingsgevolgen van het verwijderen van deze bescherming.
Een aanvaller kan een CLONE-actie indienen met honderden conntrack sub-acties. Op x86-64 breidt de kernel elk uit tot 164 bytes, waardoor de geneste actie groter wordt dan 65.535 bytes. Bij het schrijven naar het 16-bits lengteveld wikkelt de waarde om. Latere code vertrouwt op deze lengte en gaat verder met parsen binnen door de aanvaller gecontroleerde conntrack data, waar vervalste OVS-acties klaarstaan. Omdat het landingspunt deterministisch is binnen dezelfde buffer, is geen heap grooming nodig. Dit resulteert in een geheugenbeschadigingskwetsbaarheid met een betrouwbaarheid vergelijkbaar met een logische fout.
De exploit maakt gebruik van drie primitieve acties uit deze wraparound: een kernel pointer lek via een nep OUTPUT-actie, een arbitraire kernel read via een vervalste tunnel SET-actie en een gerichte decrement via het afbreken van een vervalste tun_dst pointer. Hiermee kan een hostproces credentials vinden en op moderne kernels fsuid en fsgid naar nul verlagen. De gepubliceerde proof-of-concept is expliciet destructief en vereist OVS conntrack ondersteuning, de FTP conntrack helper en sudo. Bij succesvolle exploitatie worden live kernel credentials beschadigd, sudoers-bestanden aangepast, een root shell geopend en processen en OVS-status achtergelaten om onveilige afbreking te voorkomen. Het PoC bevat records voor ongeveer 800 exacte x86-64 kernel builds en probeert dynamische afleiding voor andere builds, zoals beschreven in het technische verslag en het PoC repository.
Reacties
Geef een reactie
Vereiste velden zijn gemarkeerd met *