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

✍️ OpenClawRadar📅 Опубликовано: 2 апреля 2026 г.🔗 Source
Уязвимость удаленного выполнения кода в ядре FreeBSD через переполнение буфера стека в kgssapi.ko (CVE-2026-4747)
Ad

Детали уязвимости

Уязвимость присутствует в функции 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).

Ad

Затронутые версии

  • 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

Ad

👀 Смотрите также

Sieve: Локальный сканер секретов для истории чатов инструментов ИИ-кодинга
Безопасность

Sieve: Локальный сканер секретов для истории чатов инструментов ИИ-кодинга

Sieve сканирует историю чатов Cursor, Claude Code, Copilot и других AI-ассистентов кодирования на наличие утекших API-ключей и токенов. Все сканирование происходит локально, с редактированием и хранилищем Keychain macOS.

OpenClawRadar
AI-чатботы утекают реальные номера телефонов: проблема утечки PII
Безопасность

AI-чатботы утекают реальные номера телефонов: проблема утечки PII

Чат-боты, такие как Gemini, ChatGPT и Claude, раскрывают реальные личные номера телефонов из-за содержания PII в обучающих данных. DeleteMe сообщает о 400%-ном увеличении запросов на конфиденциальность, связанных с ИИ, за семь месяцев.

OpenClawRadar
Сканирование безопасности выявляет критическую уязвимость в инструменте поиска навыков AI-агента.
Безопасность

Сканирование безопасности выявляет критическую уязвимость в инструменте поиска навыков AI-агента.

Разработчик, проводивший сканирование безопасности своей настройки ИИ-агента, обнаружил уязвимость высокой степени серьезности в инструменте find-skills, который использовался для установки дополнительных навыков, что вызвало обеспокоенность по поводу безопасности экосистемы.

OpenClawRadar
Clawvisor: Уровень авторизации на основе целей для агентов OpenClaw
Безопасность

Clawvisor: Уровень авторизации на основе целей для агентов OpenClaw

Clawvisor — это слой авторизации, который располагается между ИИ-агентами и API, обеспечивая авторизацию на основе цели: агенты объявляют намерения, пользователи одобряют конкретные цели, а ИИ-привратник проверяет каждый запрос на соответствие этой цели. Учётные данные никогда не покидают Clawvisor, и агенты их не видят.

OpenClawRadar