Er is een kwetsbaarheid (CVE-2026-7270) ontdekt in FreeBSD die een gebruiker zonder beheerdersrechten in staat stelt kernelcode uit te voeren en root-toegang tot het systeem te verkrijgen. De kwetsbaarheid treft alle FreeBSD-releases die sinds 2013 zijn uitgebracht. Een exploit is publiekelijk beschikbaar geweest en is getest op systemen met FreeBSD 11.0 tot en met 14.4. De kwetsbaarheid is verholpen in FreeBSD 15.0-RELEASE-p7, 14.4-RELEASE-p3, 14.3-RELEASE-p12 en 13.5-RELEASE-p13. Er is een patch beschikbaar voor oudere releases.
Het probleem wordt veroorzaakt door een bufferoverloop in de execve-systeemoproep. Dit gebeurt bij het verwerken van het voorvoegsel dat in de eerste regel van scripts is opgegeven om het pad naar de interpreter te bepalen (bijvoorbeeld "#!/bin/sh"). De overloop treedt op tijdens een aanroep van de memmove-functie vanwege een onjuist geconstrueerde wiskundige expressie voor het berekenen van de grootte van de argumenten die naar de buffer worden gekopieerd. In plaats van de waarden van "args->begin_argv" en "consume" af te trekken van "args->endp", werd alleen de waarde van "args->begin_argv" afgetrokken van "args->endp", en werd de variabele "consume" bij het resultaat opgeteld in plaats van afgetrokken. Dit resulteert erin dat er twee waarden van "consume" meer gegevens worden gekopieerd. memmove(args->begin_argv + extend, args->begin_argv + consume, - args->endp - args->begin_argv + consume); + args->endp — (args->begin_argv + consume));
De geheugenoverloop maakt het mogelijk om elementen van de "exec_map"-structuur, die in aangrenzend geheugen door een ander proces zijn toegewezen, te overschrijven. De exploit maakt gebruik van de geheugenoverloop om de inhoud van de "exec_map" van geprivilegieerde processen die periodiek op het systeem worden gestart, te overschrijven. Het gekozen proces is sshd, dat, telkens wanneer een netwerkverbinding tot stand wordt gebracht, het proces "/usr/libexec/sshd-session" met rootrechten aanmaakt en uitvoert.
De exploit vervangt de omgevingsvariabele "LD_PRELOAD=/tmp/evil.so" voor dit proces, waardoor de bijbehorende bibliotheek in de sshd-sessiecontext wordt geladen. De geïnjecteerde bibliotheek maakt een uitvoerbaar bestand met de naam /tmp/rootsh aan in het bestandssysteem met de suid root-vlag. De kans op succes van de exploit wordt geschat op 0.6%, maar dankzij de cyclische herhaalpogingen wordt een succesvolle exploitatie in ongeveer 6 seconden bereikt op een systeem met een 4-core CPU.

Daarnaast zijn er nog diverse andere beveiligingslekken in FreeBSD verholpen:
- CVE-2026-35547 en CVE-2026-39457 zijn bufferoverloopkwetsbaarheden in de libnv-bibliotheek, die in de kernel en in basissysteemtoepassingen wordt gebruikt voor het verwerken van sleutel/waarde-lijsten en het afhandelen van interprocescommunicatie. Het eerste probleem wordt veroorzaakt door een onjuiste berekening van de berichtgrootte bij het verwerken van speciaal geconstrueerde IPC-berichtheaders. Het tweede probleem resulteert in een stackoverloop tijdens socketcommunicatie als gevolg van een gebrek aan controles om ervoor te zorgen dat de grootte van de socketdescriptor overeenkomt met de buffergrootte die wordt gebruikt in de select()-functie. Deze kwetsbaarheden kunnen mogelijk worden misbruikt om privileges te escaleren.
- CVE-2026-42512 is een op afstand exploiteerbare bufferoverloop in dhclient als gevolg van een onjuiste berekening van de grootte van een pointerarray die wordt gebruikt om omgevingsvariabelen door te geven aan dhclient-script. Het is mogelijk om een exploit te creëren voor het uitvoeren van code op afstand door een speciaal geconstrueerd DHCP-pakket te verzenden.
- CVE-2026-7164 – Er treedt een stack-overflow-kwetsbaarheid op in het pf-pakketfilter bij het verwerken van speciaal geconstrueerde SCTP-pakketten. Het probleem wordt veroorzaakt door het onbeperkt recursief parsen van SCTP-parameters.
- CVE-2026-42511 – Het is mogelijk om willekeurige instructies in dhclient.conf in te voegen als gevolg van onvoldoende ontsnapping van dubbele haakjes in BOOTP-velden die van een externe DHCP-server worden ontvangen. Wanneer het dhclient-proces dit bestand vervolgens parseert, wordt het door de aanvaller opgegeven veld doorgegeven aan dhclient-script. Dit script kan vervolgens worden gebruikt om willekeurige commando's met rootrechten uit te voeren op systemen waarop dhclient draait, wanneer toegang wordt verkregen tot een DHCP-server die door de aanvaller wordt beheerd.
- CVE-2026-6386 — Onvoldoende afhandeling van grote geheugenpagina's in de kernelfunctie pmap_pkru_update_range(). Een gebruiker zonder beheerdersrechten kan ervoor zorgen dat pmap_pkru_update_range() geheugen in de gebruikersruimte behandelt als een pagina in de geheugenpaginatabel, waardoor een ongeautoriseerd geheugengebied wordt overschreven.
- CVE-2026-5398 - Een verwijzing naar een eerder vrijgegeven geheugenregio in de TIOCNOTTY-handler stelt een proces zonder rootrechten in staat rootrechten te verkrijgen.
Bron: opennet.ru
