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

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

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-файлов и скрипты воспроизведения, демонстрирующие исчерпание памяти и сбой системы.

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

Популярное

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

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

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

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

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

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 - Этот файл

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


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

    root@kitploit:~
    # Запуск автоматизированного тестового скрипта (с защитой по таймауту)
    chmod +x test_pypdf.sh
    ./test_pypdf.sh
    
    # Это приведет к:
    # 1. Установке уязвимой версии pypdf
    # 2. Запуску теста с 15-секундным таймаутом
    # 3. Отображению поведения потребления памяти
    

    Ручные тесты

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

    root@kitploit:~
    # Установка pypdf (уязвимая версия 6.6.0)
    pip install "pypdf==6.6.0"
    
    # Запуск с таймаутом
    timeout 10s python3 simple_read_pdf.py malicious_circular_outline.pdf
    

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

    root@kitploit:~
    # Установка 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)

    root@kitploit:~
    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

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