Уязвимость удаленного выполнения кода в ядре FreeBSD через переполнение буфера стека в kgssapi.ko (CVE-2026-4747)

Детали уязвимости
Уязвимость присутствует в функции svc_rpc_gss_validate() файла sys/rpc/rpcsec_gss/svc_rpcsec_gss.c. Используется 128-байтовый буфер в стеке (rpchdr[]) для восстановления заголовков RPC при проверке подписи GSS-API. После записи 32 байт фиксированных полей заголовка RPC функция копирует всё тело учётных данных RPCSEC_GSS (oa_length байт) в оставшееся пространство без проверки границ.
static bool_t svc_rpc_gss_validate(...) {
int32_t rpchdr[128 / sizeof(int32_t)]; // 128 байт в стеке
// ...
if (oa->oa_length) {
// БАГ: Нет проверки границ для oa_length!
// После 32 байт заголовка в rpchdr остаётся только 96 байт.
// Если oa_length > 96, происходит переполнение за пределы rpchdr
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
}
}
Вектор атаки и последствия
Уязвимый модуль kgssapi.ko реализует аутентификацию RPCSEC_GSS для подсистемы RPC ядра FreeBSD. Демон NFS-сервера (nfsd), прослушивающий порт 2049/TCP, обрабатывает пакеты RPC в контексте ядра и использует этот модуль, когда включена аутентификация RPCSEC_GSS. Успешная эксплуатация приводит к удалённому выполнению кода в ядре с привилегиями root (обратная оболочка с uid 0).
Затронутые версии
- FreeBSD 13.5 (<p11)
- FreeBSD 14.3 (<p10)
- FreeBSD 14.4 (<p1)
- FreeBSD 15.0 (<p5)
Исправление
Патч для FreeBSD 14.4-RELEASE-p1 добавляет проверку границ перед копированием:
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {
rpc_gss_log_debug("auth length %d exceeds maximum", oa->oa_length);
client->cl_state = CLIENT_STALE;
return (FALSE);
}
Анализ структуры стека
Из дизассемблирования функции массив rpchdr находится по адресу [rbp-0xc0]. memcpy записывает в rpchdr + 32 = [rbp-0xa0]. При 16-байтовом контекстном дескрипторе в теле учётных данных адрес возврата попадает на 200-й байт тела учётных данных, что позволяет контролировать поток выполнения.
📖 Читать полный источник: HN AI Agents
👀 Смотрите также

Функция использования компьютера от Anthropic вызывает блокировку управления в реальном тесте.
Anthropic внедрила возможности использования компьютера, и во время реализации механизмов управления сработал порог риска, который привёл к режиму БЛОКИРОВКИ, заблокировав все операции изменения, включая работу самого оператора по управлению.

Обезноженный: Расширенный.Scanner для вредоносных программ, управляемый сообществом, для файлов SKILL.md ClawHub.
Declawed — это инструмент безопасности для сканирования файлов SKILL.md на ClawHub, обнаружения инъекций в подсказках, вредоносного контента и кражи информации с использованием правил, разработанных сообществом.

openclaw-credential-vault устраняет четыре пути утечки учетных данных в ИИ-агентах
openclaw-credential-vault обеспечивает изоляцию на уровне операционной системы и инъекцию учетных данных с ограниченной областью действия для подпроцессов, чтобы предотвратить четыре распространенных пути раскрытия учетных данных в настройках OpenClaw. Он включает очистку вывода с четырьмя перехватчиками и работает с любыми инструментами командной строки или API.

Разработчик создает песочницу Firecracker MicroVM для безопасности OpenClaw.
Разработчик, обеспокоенный безопасностью LLM, создал минималистичную песочницу с использованием микровиртуальных машин Firecracker для изоляции скриптов OpenClaw, где каждый скрипт выполняется в собственном ядре Linux с ограничением оперативной памяти в 128 МБ и без доступа к сети по умолчанию.