Kwetsbaarheid in de IPv6-stack van de Linux-kernel waardoor uitvoering van code op afstand mogelijk is

Er is informatie vrijgegeven over de kwetsbaarheid CVE-2023-6200) in de netwerkstack van de Linux-kernel, waardoor een aanvaller vanaf een lokaal netwerk onder bepaalde omstandigheden de uitvoering van zijn code kan bewerkstelligen door een speciaal ontworpen ICMPv6-pakket met een RA-bericht (Router Advertentie) bedoeld om informatie over de router bekend te maken.

De kwetsbaarheid kan alleen worden misbruikt vanuit het lokale netwerk en verschijnt op systemen waarop IPv6-ondersteuning is ingeschakeld en de sysctl-parameter “net.ipv6.conf.<network_interface_name>.accept_ra” actief is (kan worden gecontroleerd met het commando “sysctl net.ipv6.conf | grep accept_ra”) , dat standaard is uitgeschakeld in RHEL en Ubuntu voor externe netwerkinterfaces, maar ingeschakeld voor de loopback-interface, die een aanval vanaf hetzelfde systeem mogelijk maakt.

De kwetsbaarheid wordt veroorzaakt door een race condition wanneer de garbage collector verouderde fib6_info-records verwerkt, wat kan leiden tot toegang tot een reeds vrijgemaakt geheugengebied (use-after-free). Bij het ontvangen van een ICMPv6-pakket met een router-aankondigingsbericht (RA, Router Advertising), roept de netwerkstack de functie ndisc_router_discovery() aan, die, als het RA-bericht informatie bevat over de levensduur van de route, de functie fib6_set_expires() aanroept en de gc_link vult. structuur. Om verouderde gegevens op te ruimen, gebruikt u de functie fib6_clean_expires(), die de invoer in gc_link ontkoppelt en het geheugen leegmaakt dat door de fib6_info-structuur wordt gebruikt. In dit geval is er een bepaald moment waarop het geheugen voor de fib6_info-structuur al is vrijgegeven, maar de link ernaartoe zich nog steeds in de gc_link-structuur bevindt.

De kwetsbaarheid verscheen vanaf branch 6.6 en werd opgelost in versies 6.6.9 en 6.7. De status van het oplossen van de kwetsbaarheid in distributies kan worden beoordeeld op deze pagina's: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Onder de distributies die pakketten met de 6.6-kernel verzenden, kunnen we Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva en Manjaro noemen; in andere distributies is het mogelijk dat de wijziging met een fout wordt teruggeport naar pakketten met oudere kernelvertakkingen (bijvoorbeeld In Debian wordt bijvoorbeeld vermeld dat het pakket met kernel 6.5.13 kwetsbaar is, terwijl de problematische verandering verscheen in de 6.6 branch). Als beveiligingsoplossing kunt u IPv6 uitschakelen of de parameters “net.ipv0.conf.*.accept_ra” instellen op 6.

Bron: opennet.ru

Voeg een reactie