Sårbarhed i systemopkaldet execve, der giver root-adgang i FreeBSD

Der er opdaget en sårbarhed i FreeBSD (CVE-2026-7270), der tillader en ikke-privilegeret bruger at udføre kode med kernel-rettigheder og få root-adgang til systemet. Sårbarheden påvirker alle versioner af FreeBSD, der er udgivet siden 2013. En exploit er offentligt tilgængelig, og dens funktionalitet er blevet testet på systemer med FreeBSD 11.0 til 14.4. Sårbarheden er blevet rettet i opdateringerne FreeBSD 15.0-RELEASE-p7, 14.4-RELEASE-p3, 14.3-RELEASE-p12 og 13.5-RELEASE-p13. For ældre versioner kan der anvendes et patch.

Problemet skyldes en buffer-overløb i systemopkaldet execve, som opstår under behandlingen af præfikset angivet i den første linje af scripts til at definere stien til fortolkeren (f.eks. "#!\/bin\/sh"). Overløbet opstår ved kald af funktionen memmove på grund af en forkert formulering af den matematiske udtryk til beregning af størrelsen på de kopierede argumenter til bufferet. I stedet for at trække værdierne "args->begin_argv" og "consume" fra "args->endp", blev der kun trukket værdien "args->begin_argv" fra "args->endp", mens variablen consume blev lagt til resultatet i stedet for at blive trukket fra, hvilket resulterede i, at der blev kopieret mere data med to værdier af "consume". memmove(args->begin_argv + extend, args->begin_argv + consume, — args->endp — args->begin_argv + consume); + args->endp — (args->begin_argv + consume));

Overløbet muliggør omskrivning af de elementer i strukturen "exec_map", der er placeret i det tilstødende hukommelsesområde fra en anden proces. I exploit'en anvendes overløbet til at omskrive indholdet af "exec_map" fra privilegerede processer, der kører periodisk i systemet. Som en sådan proces er sshd valgt, som ved hver etablering af en netværksforbindelse fork'er og exec'ver processen "\/usr\/libexec\/sshd-session" med root-rettigheder.

Exploit'en sætter miljøvariablen "LD_PRELOAD=\/tmp\/evil.so" for denne proces, hvilket fører til indlæsning af sin egen biblioteksfil i konteksten af sshd-session. Den indsatte biblioteksfil opretter en eksekverbar fil \/tmp\/rootsh med root suid-flagget. Chancen for et succesfuldt overløb vurderes til 0,6%, men takket være cykliske prøveforsøg opnås succesfuld udnyttelse efter cirka 6 sekunder på et system med en 4-kernet CPU.

Sårbarhed i systemopkaldet execve, der giver root-adgang i FreeBSD

Derudover er der blevet rettet flere andre sårbarheder i FreeBSD:

  • CVE-2026-35547, CVE-2026-39457 — buffer overflow in the libnv library used in the kernel and base system applications for processing key/value format lists and for organizing data transmission in inter-process communication. The first issue is caused by incorrect message size calculation when processing specially formatted IPC-message headers. The second issue leads to stack overflow during data exchange via socket due to a lack of size verification between the socket descriptor and the buffer size used in the select() function. Potential vulnerabilities may be exploited to elevate privileges within the system.
  • CVE-2026-42512 — remotely exploitable buffer overflow in dhclient, occurring due to incorrect computation of the pointer array size used for passing environment variables to dhclient-script. Exploits for remote code execution may be created through sending specially formatted DHCP packets.
  • CVE-2026-7164 — stack overflow in the pf packet filter that occurs when processing specially formatted SCTP packets. The problem is caused by unbounded recursive parsing of SCTP parameters.
  • CVE-2026-42511 — the possibility of substitution in dhclient.conf of arbitrary directives due to insufficient escaping of double brackets in BOOTP fields received from an external DHCP server. When this file is parsed by the dhclient process, the specified field provided by the attacker is passed to dhclient-script, which can be used to execute arbitrary commands with root privileges on systems using dhclient when connecting to a controlled attacking DHCP server.
  • CVE-2026-6386 — lack of proper handling of large memory pages in the kernel function pmap_pkru_update_range(). An unprivileged user can force pmap_pkru_update_range() to treat memory from user space as a page in the memory page table and achieve overwriting of inaccessible memory areas.
  • CVE-2026-5398 — access to already freed memory in the TIOCNOTTY handler, allowing an unprivileged process to gain root privileges.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster