È stata identificata una vulnerabilità in FreeBSD (CVE-2026-7270) che consente a un utente non privilegiato di eseguire codice con i diritti del kernel e ottenere accesso root al sistema. La vulnerabilità interessa tutte le versioni di FreeBSD rilasciate dal 2013. È disponibile un exploit pubblico che è stato testato su sistemi da FreeBSD 11.0 a 14.4. La vulnerabilità è stata corretta negli aggiornamenti di FreeBSD 15.0-RELEASE-p7, 14.4-RELEASE-p3, 14.3-RELEASE-p12 e 13.5-RELEASE-p13. Per le versioni più vecchie, è possibile utilizzare una patch.
Il problema è causato da un overflow del buffer nella chiamata di sistema execve, che si verifica durante l'elaborazione del prefisso indicato nella prima riga degli script per definire il percorso all'interprete (ad esempio, «#!/bin/sh»). L'overflow si verifica durante la chiamata alla funzione memmove a causa di una costruzione errata dell'espressione matematica per calcolare la dimensione degli argomenti copiati nel buffer. Invece di sottrarre da «args->endp» i valori «args->begin_argv» e «consume», è stata sottratta solo la valore «args->begin_argv», mentre la variabile consume è stata aggiunta al risultato anziché sottratta, il che significa che sono stati copiati più dati per due valori di «consume». memmove(args->begin_argv + extend, args->begin_argv + consume, — args->endp — args->begin_argv + consume); + args->endp — (args->begin_argv + consume));
Il buffer overflow consente di sovrascrivere gli elementi della struttura «exec_map» in memoria adiacente da un altro processo. Nell'exploit, il buffer overflow viene utilizzato per sovrascrivere il contenuto di «exec_map» di processi privilegiati che vengono eseguiti periodicamente nel sistema. Come processo simile è stato scelto sshd, che ad ogni apertura di una connessione di rete avvia tramite la chiamata fork ed execve il processo «/usr/libexec/sshd-session» con privilegi di root.
L'exploit imposta per questo processo la variabile d'ambiente «LD_PRELOAD=/tmp/evil.so», che porta al caricamento della propria libreria nel contesto di sshd-session. La libreria iniettata crea un file eseguibile nel file system chiamato /tmp/rootsh con il flag suid root. La probabilità di un overflow riuscito è stimata al 0,6%, ma grazie ai tentativi ciclici, si raggiunge un exploit riuscito in circa 6 secondi su un sistema con CPU quad-core.

Inoltre, su FreeBSD sono state corrette ulteriori vulnerabilità:
- CVE-2026-35547, CVE-2026-39457 — buffer overflow issues in the libnv library, used in the kernel and applications of the base system for processing key/value formatted lists and facilitating data transfer during inter-process communication. The first issue is caused by incorrect message size calculations when handling specially formatted IPC message headers. The second issue leads to stack overflow during data exchange via a socket, due to the lack of checks for matching the socket descriptor size with the size of the buffer used in the select() function. These vulnerabilities could potentially be exploited to escalate privileges within the system.
- CVE-2026-42512 — a remotely exploitable buffer overflow in dhclient, arising from incorrect calculations of the size of the pointer array used to pass environment variables to the dhclient-script. There is a possibility of an exploit being created for remote code execution through sending a specially crafted DHCP packet.
- CVE-2026-7164 — overflow di stack nel filtro pacchetti pf, che si verifica durante l'elaborazione di pacchetti SCTP formattati in modo specifico. Il problema è causato da un'analisi ricorsiva illimitata dei parametri SCTP.
- CVE-2026-42511 — possibilità di iniezione di direttive arbitrarie in dhclient.conf a causa della mancanza di corretta esecuzione di escaping delle doppie parentesi nei campi BOOTP ricevuti da un server DHCP esterno. Durante l'analisi di questo file da parte del processo dhclient, il campo specificato dall'attaccante viene passato a dhclient-script, che può essere sfruttato per eseguire comandi arbitrari con diritti di root su sistemi che utilizzano dhclient, quando si connettono a un server DHCP controllato dall'attaccante.
- CVE-2026-6386 — mancanza di adeguata gestione delle grandi pagine di memoria nella funzione kernel pmap_pkru_update_range(). Un utente non privilegiato può costringere pmap_pkru_update_range() a elaborare la memoria dallo spazio utente come una pagina nella tabella delle pagine di memoria, riuscendo così a sovrascrivere una zona di memoria a cui non ha accesso.
- CVE-2026-5398 — accesso a un'area di memoria già liberata nel gestore TIOCNOTTY, che consente a un processo non privilegiato di ottenere diritti di root.
Fonte: opennet.ru
