Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-81000 — Исследовательский репозиторий для CVE-2026-81000 (TUNderflow) — целочисленное переполнение приёмного headroom в TUN/TAP ядра Linux, позволяющее локальное повышение привилегий, с PoC, анализом первопричины и настройкой лабораторной среды. | Kitploit
Инструменты/GitHubGitHub/0xblackash/cve-2026-81000
Повышение привилегийАнализ уязвимостейЭксплуатацияОбратная инженерияТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHub0xblackash/cve-2026-81000

CVE-2026-81000

Исследовательский репозиторий для CVE-2026-81000 (TUNderflow) — целочисленное переполнение приёмного headroom в TUN/TAP ядра Linux, позволяющее локальное повышение привилегий, с PoC, анализом первопричины и настройкой лабораторной среды.

1931 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

⚡ CVE-2026-81000 - TUNderflow

Gemini_Generated_Image_tewwjgtewwjgteww

Повреждение памяти из-за headroom при приёме в TUN/TAP ядра Linux

Уязвимость повреждения памяти в ядре Linux в подсистеме сетевых интерфейсов TUN/TAP, вызванная недостаточными ограничениями на headroom при приёме и целочисленным underflow в пути выделения пакета.


⚠️ Отказ от ответственности

Этот репозиторий предназначен для авторизованных исследований в области безопасности, анализа уязвимостей, сред CTF, отладки ядра и защитного тестирования.

Не используйте код proof-of-concept против систем без явного разрешения.


📌 Обзор уязвимости

ПолеДетали
CVECVE-2026-81000
Кодовое имяTUNderflow
КомпонентЯдро Linux
ПодсистемаTUN/TAP
Затронутый кодdrivers/net/tun.c
Основная функцияtun_get_user()
Класс ошибкиЦелочисленный underflow / выход за границы памяти
ВоздействиеПовреждение памяти ядра
Потенциальное воздействиеЛокальное повышение привилегий
CVSS v3.17.8 — High
Вектор атакиЛокальный
Требуемые привилегииНизкие
Взаимодействие с пользователемОтсутствует
СтатусИсправлено

В рекомендации по CVE проблема описывается как целочисленный underflow, который может привести к тому, что skb->data окажется за пределами выделенного head у skb.


🧬 Описание уязвимости

Уязвимость существует в пути приёма TUN/TAP ядра Linux.

Затронутый код использует настроенный для TUN-устройства headroom приёма как headroom пакета, а также при вычислении того, сколько данных пакета должно оставаться линейным.

Поэтому завышенное значение headroom может привести к некорректному вычислению в:

SKB_MAX_HEAD(align)

Когда переданное значение превышает доступный заголовок skb размером в одну страницу, вычисление может привести к underflow.

Концептуально:

Oversized receive headroom
          │
          ▼
     SKB_MAX_HEAD()
          │
          ▼
     Integer underflow
          │
          ▼
    Negative value
          │
          ▼
      size_t wrap
          │
          ▼
Invalid skb data placement
          │
          ▼
Kernel memory corruption

Уязвимая реализация находится в:

drivers/net/tun.c

где tun_get_user() является центральным элементом уязвимого пути.


🔬 Первопричина

Основная проблема заключается в недостаточно ограниченном запасе заголовка приёма TUN (TUN receive headroom).

Ядро может получить запрос на чрезмерно большой запас заголовка через пути сетевых устройств, которые передают это значение в TUN/TAP.

Уязвимость становится особенно интересной, когда сложная конфигурация виртуальной сети приводит к тому, что большое значение запаса заголовка достигает устройства TUN.

Публичное раскрытие описывает сценарий, включающий:

Netkit
   │
   ▼
VXLAN
   │
   ▼
Open vSwitch
   │
   ▼
TUN

Пример конфигурации может передать примерно 4160 байт запаса сырому TUN-порту, что приводит к целочисленному переполнению в уязвимой арифметике.


💥 Влияние на безопасность

Повреждение происходит в логике управления памятью сетевой подсистемы ядра.

Возможные последствия включают:

  • Повреждение памяти ядра
  • Падение ядра
  • Отказ в обслуживании
  • Повреждение структур ядра
  • Потенциальное выполнение кода в ядре
  • Локальное повышение привилегий

В публичном раскрытии уязвимость описывается как одна из группы уязвимостей локального повышения привилегий до root в Linux, и указывается, что опубликованный PoC позволяет непривилегированному локальному пользователю получить права root на поддерживаемых целях.

Возможность эксплуатации зависит от окружения и требует соответствующей конфигурации TUN/сетевого устройства и поддерживающей функциональности.


🧠 Технический процесс

             ATTACKER
                 │
                 ▼
       Oversized network headroom
                 │
                 ▼
        Virtual network device
                 │
                 ▼
             Open vSwitch
                 │
                 ▼
              TUN/TAP
                 │
                 ▼
          tun_get_user()
                 │
                 ▼
       SKB_MAX_HEAD(align)
                 │
                 ▼
          Integer underflow
                 │
                 ▼
          size_t wraparound
                 │
                 ▼
       Invalid skb->data offset
                 │
                 ▼
       Kernel memory corruption

🔎 Уязвимый путь кода

Важными компонентами являются:

drivers/net/tun.c
        │
        ├── tun_set_headroom()
        │
        ├── tun_get_user()
        │
        └── tun_alloc_skb()

Уязвимую связь можно упрощённо представить так:

tun->align
    │
    ├── skb headroom
    │
    └── linear-data calculation

Использование одного и того же завышенного значения в обоих вычислениях создаёт небезопасную связь между запрашиваемым запасом и фактическим бюджетом head у skb.


🧮 Целочисленное переполнение снизу

Критическое свойство безопасности можно концептуально представить как:

usable_head < requested_headroom

что может привести к:

SKB_MAX_HEAD(align) < 0

с последующим беззнаковым преобразованием:

negative value
      ↓
size_t
      ↓
very large unsigned value

Это в конечном итоге может повлиять на выделение skb и размещение данных.

В официальном описании особо отмечается, что итоговое значение переполняется при присваивании переменной linear типа size_t.


🩹 Исправление в upstream

Исправление в upstream выглядит так:

447c9303942c439a117d9b76ce6d6e2116c38ee7

Commit:

net: tun: bound receive headroom

Исправление ограничивает запас места, сохраняемый TUN, доступным бюджетом запаса skb размером в одну страницу и максимальным допустимым 16-битным смещением заголовка skb. Оно также гарантирует наличие достаточного объёма линейных данных для обработки raw TUN и TAP.


🛡️ Концепция патча

До

User / network device
        │
        ▼
Large headroom
        │
        ▼
tun->align
        │
        ▼
Unsafe arithmetic
        │
        ▼
Potential OOB access

После

Скачать инструмент