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

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

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

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

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

Категории

Все категории
Loading categories
CVE_2026_31694 — Пассивный сканер уязвимостей хостов Linux для CVE-2026-31694: проверяет запущенное ядро, конфигурацию FUSE, метаданные пакетов и признаки установленных исправлений, затем формирует персонализированные рекомендации по устранению уязвимости. | Kitploit
Инструменты/GitHubGitHub/zenzue/cve_2026_31694
Оборонительные ИнструментыСканеры уязвимостейАнализ уязвимостейАудит конфигурации
GitHubzenzue/cve_2026_31694

CVE_2026_31694

Пассивный сканер уязвимостей хостов Linux для CVE-2026-31694: проверяет запущенное ядро, конфигурацию FUSE, метаданные пакетов и признаки установленных исправлений, затем формирует персонализированные рекомендации по устранению уязвимости.

Репозиторий
132 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-31694 Пассивный сканер

Пассивный инструмент оценки хоста Linux для CVE-2026-31694 — внеграничной записи в кэше readdir подсистемы FUSE в ядре Linux.

Сканер оценивает работающее ядро, подверженность FUSE, локальные метаданные пакетов, свидетельства исходников ядра, среду выполнения и семейство операционной системы. Если хост может быть затронут, он формирует руководство по смягчению последствий, адаптированное к обнаруженному дистрибутиву.

Автор: Aung Myat Thu [w01f]


Содержание

  • Обзор
  • Сводка об уязвимости
  • Модель безопасности
  • Возможности
  • Требования
  • Установка
  • Использование
  • Параметры командной строки
  • Порядок оценки
  • Вердикты
  • Коды выхода
  • Источники обнаружения
  • Поддержка дистрибутивов
  • Формирование рекомендаций по смягчению
  • Поведение в контейнерах и WSL
  • Форматы отчётов
  • Автоматизация и интеграция
  • Эксплуатационные рекомендации
  • Ограничения
  • Устранение неполадок
  • Ссылки

Обзор

cve_2026_31694_scanner.py — локальная утилита оценки уязвимостей, не использующая эксплойты.

Она не подтверждает уязвимость путём запуска затронутого участка кода FUSE. Вместо этого она объединяет несколько пассивных индикаторов:

  • версия работающего ядра;
  • эталонные исправленные версии из апстрима;
  • текущий размер страницы памяти;
  • конфигурация ядра CONFIG_FUSE_FS;
  • зарегистрированные типы файловой системы FUSE;
  • наличие /dev/fuse и доступ текущего пользователя;
  • наличие вспомогательной утилиты монтирования FUSE;
  • активные точки монтирования FUSE;
  • проверка установленных исходников ядра;
  • принадлежность пакета ядра;
  • свидетельства из локального журнала изменений пакетов;
  • кешированные метаданные обновлений пакетов;
  • сравнение установленного и работающего ядра;
  • определение дистрибутива и пакетного менеджера;
  • определение контейнера, виртуальной машины и WSL.

Результат представляет собой оценку подверженности, а не доказательство на основе эксплойта.


Сводка об уязвимости

CVE-2026-31694 затрагивает кэш readdir подсистемы FUSE в ядре Linux.

Уязвимая логика вычисляет сериализованный размер записи каталога на основе управляемой сервером длины имени и копирует запись на одну страницу page-cache. Запись каталога с длиной имени 4095 может дать сериализованный размер 4120 байт.

В системе с страницами по 4096 байт такая запись превышает одну страницу на 24 байта.

Исправление из апстрима отклоняет записи каталога, которые не помещаются в одну страницу, до выполнения копирования в кэш.

Затронутый компонент```text

fs/fuse/readdir.c fuse_add_dirent_to_cache()

### Базовые данные сканера

Сканер содержит следующие стабильные исправленные эталонные версии из upstream:

| Серия ядра | Исправленная эталонная версия |
|---|---:|
| 5.10 | 5.10.258 |
| 5.15 | 5.15.209 |
| 6.1 | 6.1.175 |
| 6.6 | 6.6.136 |
| 6.12 | 6.12.84 |
| 6.18 | 6.18.25 |
| 7.0 | 7.0.2 |
| Mainline | 7.1 или новее |

Эти версии используются как один из входных параметров оценки. Они не считаются единственным источником истины, поскольку дистрибьюторы могут перенести исправление, сохраняя при этом более старый номер версии upstream.

---

## Модель безопасности

Сканер спроектирован так, чтобы не вызывать уязвимую операцию.

### Сканер не делает

- не монтирует файловую систему FUSE;
- не открывает и не взаимодействует с `/dev/fuse`;
- не запускает FUSE-сервер;
- не передаёт специально сформированные записи каталогов;
- не выделяет память для тестирования размещения страниц;
- не выполняет груминг аллокаторов ядра;
- не изменяет `/etc/passwd`;
- не изменяет конфигурацию ядра;
- не загружает и не выгружает модули ядра;
- не изменяет права доступа к `/dev/fuse`;
- не устанавливает и не удаляет пакеты;
- не перезагружает систему;
- не пытается повысить привилегии.

### Сканер может

- читать файлы в `/proc`, `/boot`, `/lib/modules`, `/usr/lib/modules`, `/usr/src` и каталогах метаданных пакетов;
- выполнять ограниченные, доступные только для чтения запросы к пакетам;
- проверять активные точки монтирования и регистрацию файловых систем;
- записывать отчёт только при явном указании `--output`;
- выводить команды для смягчения последствий для ознакомления администратора.

Команды для смягчения последствий — это справочный вывод. Они никогда не выполняются автоматически.

---

## Возможности

### Идентификация хоста и ядра

- Читает `platform.release()` и разбирает версию ядра в стиле upstream.
- Читает `/etc/os-release` или `/usr/lib/os-release`.
- Определяет архитектуру CPU и размер страницы памяти.
- Определяет, принадлежит ли сканируемое ядро текущей операционной системе.

### Оценка подверженности FUSE

- Читает `CONFIG_FUSE_FS` из доступных источников конфигурации ядра.
- Определяет встроенную поддержку FUSE и конфигурации подгружаемых модулей.
- Читает `/proc/filesystems`.
- Проверяет метаданные `/dev/fuse` и права чтения/записи текущего пользователя.
- Находит `fusermount3` или `fusermount`.
- Разбирает активные FUSE-монтирования из `/proc/self/mountinfo`.

### Признаки наличия исправления

- Сравнивает текущую версию с исправленными эталонными версиями upstream.
- Ищет в установленных исходниках ядра защиту от записей чрезмерного размера.
- Проверяет локальные журналы изменений пакетов RPM или Debian на наличие:
  - `CVE-2026-31694`;
  - названия исправления upstream.

### Состояние пакетов и перезагрузки

- Пытается определить пакет, которому принадлежит работающее ядро.
- Запрашивает локальные метаданные менеджера пакетов без обновления репозиториев.
- Определяет более новое установленное ядро, если окружение хоста является авторитетным.
- Проверяет `/var/run/reboot-required`, где это применимо.

### Определение окружения

- Определяет контейнеры, совместимые с Docker.
- Определяет контейнеры, совместимые с Podman.
- Определяет cgroups, связанные с контейнерами.
- Определяет WSL.
- Определяет виртуальные машины с помощью `systemd-detect-virt`, если он доступен.

### Отчётность

- Вывод в текстовом формате, читаемом человеком.
- Вывод в машиночитаемом формате JSON.
- Вывод отчёта в формате Markdown.
- Вывод только команд для смягчения последствий.
- Необязательный вывод в файл.
- Информативные коды завершения процесса.

---

## Требования

### Обязательные

- Linux для оценки ядра.
- Python 3.9 или новее.
- Доступ на чтение к обычным системным метаданным.

Сканер использует только стандартную библиотеку Python.

### Необязательные команды

Дополнительные свидетельства собираются при наличии следующих инструментов:

| Инструмент | Назначение |
|---|---|
| `dpkg-query` | определение владельца пакета ядра и поиск журнала изменений в Debian/Ubuntu |
| `rpm` | проверка владельца пакета и журнала изменений в Fedora/RHEL/SUSE |
| `pacman` | метаданные пакета ядра и обновлений для семейства Arch |
| `apt` | запрос к кэшированным обновлениям в семействе Debian |
| `dnf` или `dnf5` | запрос к кэшированным обновлениям в Fedora/RHEL |
| `zypper` | запрос к кэшированным исправлениям CVE в SUSE |
| `apk` | запрос пакетов/обновлений в Alpine |
| `systemd-detect-virt` | определение контейнеров и виртуальных машин |

Для обычного сканирования права root не требуются.

Некоторые свидетельства могут быть недоступны непривилегированной учётной записи из-за специфических для системы прав на файлы.

---

## Установка

Поместите сканер в рабочий каталог:```bash
chmod +x cve_2026_31694_scanner.py

Запустите напрямую:```bash ./cve_2026_31694_scanner.py

Или запустите его с помощью Python:```bash
python3 cve_2026_31694_scanner.py

Установка Python-пакета не требуется.


Использование

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