В FreeBSD е открита уязвимост (CVE-2026-7270), която позволява на непривилегирован потребител да изпълнява код на ядрото и да получава root достъп до системата. Уязвимостта засяга всички версии на FreeBSD, издадени от 2013 г. насам. Експлойтът е публично достъпен и е тестван на системи, работещи с FreeBSD от 11.0 до 14.4. Уязвимостта е отстранена във FreeBSD 15.0-RELEASE-p7, 14.4-RELEASE-p3, 14.3-RELEASE-p12 и 13.5-RELEASE-p13. За по-стари версии е наличен корекция.
Проблемът е причинен от препълване на буфера в системното извикване execve. Това се случва при обработка на префикса, посочен в първия ред на скриптовете, за да се определи пътят до интерпретатора (например, "#!/bin/sh"). Препълването се случва по време на извикване на функцията memmove поради неправилно конструиран математически израз за изчисляване на размера на аргументите, копирани в буфера. Вместо да се изваждат стойностите на "args->begin_argv" и "consume" от "args->endp", само стойността на "args->begin_argv" е извадена от "args->endp", а променливата "consume" е добавена към резултата, а не извадена, т.е. в резултат на това са копирани повече данни от две стойности на "consume". memmove(args->begin_argv + extend, args->begin_argv + consume, - args->endp - args->begin_argv + consume); + аргументи->край на аргументите — (аргументи->начало_на_аргументи + консумирам));
Препълването позволява презаписване на елементи от структурата "exec_map", разпределени в съседна памет от друг процес. Експлойтът използва препълването, за да презапише съдържанието на "exec_map" на привилегировани процеси, периодично стартирани в системата. Избраният процес е sshd, който всеки път, когато се установи мрежова връзка, разклонява и изпълнява процеса "/usr/libexec/sshd-session" с root права.
Експлойтът замества променливата на средата "LD_PRELOAD=/tmp/evil.so" за този процес, което води до зареждане на библиотеката му в контекста на sshd-session. Инжектираната библиотека създава изпълним файл с име /tmp/rootsh във файловата система с root флаг suid. Процентът на успех на експлойта се оценява на 0.6%, но благодарение на цикличния повторен опит, успешната експлоатация се постига за приблизително 6 секунди на система с 4-ядрен процесор.

Освен това, в FreeBSD са отстранени още няколко уязвимости:
- CVE-2026-35547 и CVE-2026-39457 са препълвания на буфера в библиотеката libnv, която се използва в ядрото и в приложенията на базовата система за обработка на списъци с ключове/стойности и за управление на междупроцесната комуникация. Първият проблем е причинен от неправилно изчисляване на размера на съобщението при обработка на специално създадени заглавки на IPC съобщения. Вторият проблем води до препълване на стека по време на комуникация със сокет поради липса на проверки, за да се гарантира, че размерът на дескриптора на сокета съответства на размера на буфера, използван във функцията select(). Тези уязвимости могат потенциално да бъдат използвани за ескалиране на привилегии.
- CVE-2026-42512 е експлойт за дистанционно управление на буферно препълване в dhclient поради неправилно изчисляване на размера на масив от указатели, използван за предаване на променливи на средата към dhclient-script. Възможно е да се създаде експлойт за дистанционно изпълнение на код чрез изпращане на специално създаден DHCP пакет.
- CVE-2026-7164 – Уязвимост от препълване на стека във филтъра за pf пакети възниква при обработка на специално създадени SCTP пакети. Проблемът е причинен от неограничено рекурсивно анализиране на SCTP параметри.
- CVE-2026-42511 – Възможно е да се вмъкнат произволни директиви в dhclient.conf поради неадекватно екраниране на двойни скоби в BOOTP полетата, получени от външен DHCP сървър. Когато процесът dhclient впоследствие анализира този файл, посоченото от нападателя поле се предава на dhclient-script, който може да се използва за изпълнение на произволни команди с root права на системи, работещи с dhclient, при достъп до DHCP сървър, контролиран от нападателя.
- CVE-2026-6386 — Недостатъчна обработка на големи страници памет във функцията на ядрото pmap_pkru_update_range(). Непривилегирован потребител може да накара pmap_pkru_update_range() да третира паметта в потребителското пространство като страница в таблицата със страници на паметта, като по този начин презапише неоторизиран регион на паметта.
- CVE-2026-5398 - Препратка към предварително освободен регион на паметта в манипулатора TIOCNOTTY позволява на непривилегирован процес да получи root права.
Източник: opennet.ru
