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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-24688 — Доказательство концепции эксплуатации для CVE-2026-24688, уязвимости типа «отказ в обслуживании» в разборе структуры документа в pypdf. Включает генератор вредоносных PDF-файлов и скрипты воспроизведения, демонстрирующие исчерпание памяти и сбой системы. | Kitploit
Инструменты/GitHubGitHub/joakimbulow/cve-2026-24688
Анализ уязвимостейЭксплуатацияФаззингСтатьи и ИсследованияОбучение и Образование
GitHubjoakimbulow/cve-2026-24688

CVE-2026-24688

Доказательство концепции эксплуатации для CVE-2026-24688, уязвимости типа «отказ в обслуживании» в разборе структуры документа в pypdf. Включает генератор вредоносных PDF-файлов и скрипты воспроизведения, демонстрирующие исчерпание памяти и сбой системы.

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

Популярное

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

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

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

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

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

CVE-2026-24688 - pypdf - Уязвимость отказа в обслуживании из-за циклических ссылок

Этот репозиторий содержит код proof of concept для эксплуатации CVE-2026-24688.

Краткое описание

Критическая уязвимость отказа в обслуживании в логике парсинга структуры документа (закладок) в pypdf. При обработке PDF-файла с циклическими ссылками в структуре документа парсер входит в бесконечный цикл, который непрерывно выделяет память, потребляя сотни МБ памяти в секунду на моей машине (TM), что приводит к полному краху системы.

Это DoS на уровне системы, а не просто зависание приложения.


Содержимое

  • malicious_circular_outline.pdf - Эксплуатирующий PDF-файл с циклической структурой документа (754 байта)
  • create_malicious_pdf.py - Скрипт для генерации эксплуатирующего PDF-файла
  • simple_read_pdf.py - Простой тестовый скрипт для воспроизведения уязвимости
  • test_pypdf.sh - Автоматизированный тестовый скрипт (устанавливает pypdf и запускает тест)
  • README.md - Этот файл

ПРЕДУПРЕЖДЕНИЕ: Эти тесты могут привести к краху вашей системы, если вы не будете следить за потреблением памяти и не остановите их вовремя.


Автоматизированный тест (НЕБЕЗОПАСНО)

# Запуск автоматизированного тестового скрипта (с защитой по таймауту)
chmod +x test_pypdf.sh
./test_pypdf.sh

# Это приведет к:
# 1. Установке уязвимой версии pypdf
# 2. Запуску теста с 15-секундным таймаутом
# 3. Отображению поведения потребления памяти

Ручные тесты

Тест 1: Контролируемый тест (10 секунд с таймаутом)

# Установка pypdf (уязвимая версия 6.6.0)
pip install "pypdf==6.6.0"

# Запуск с таймаутом
timeout 10s python3 simple_read_pdf.py malicious_circular_outline.pdf

Тест 2: Полный тест на крах (НЕБЕЗОПАСНО)

# Установка pypdf (уязвимая версия 6.6.0)
pip install "pypdf==6.6.0"

# Запуск без таймаута
python3 simple_read_pdf.py malicious_circular_outline.pdf

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

Уязвимый код

Расположение: pypdf/_doc_common.py - метод _get_outline() (строки 858-873)

def _get_outline(self, node, outline=None):
    while True:  # ❌ Нет обнаружения циклов!
        outline_obj = self._build_outline_item(node)
        if outline_obj:
            outline.append(outline_obj)  # ❌ Выделение памяти в цикле!
        
        if "/Next" not in node:
            break
        node = node["/Next"]  # ❌ Следует по циклическим ссылкам

Основная причина: Нет набора посещенных узлов, нет ограничения итераций, непрерывное выделение памяти


Воздействие

Подтвержденные результаты тестов

Реальный тест:

  • Результат: Крах системы, требуется принудительная перезагрузка
  • Время: ~5 минут до полного отказа системы ()
  • Память: потреблено более 30 ГБ
  • Процессоры: все ядра на 100% (система в состоянии thrashing)

Характеристики атаки:

  • ✅ 100% загрузка ЦП (немедленно)
  • ✅ Линейный рост памяти
  • ✅ Отказ всей системы
  • ✅ Требуется принудительная перезагрузка
  • ✅ Возможная потеря данных

Исправление

Исправлено в версии 6.6.2

https://github.com/py-pdf/pypdf/security/advisories/GHSA-2q4j-m29v-hq73

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