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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-2869-detector — CodeQL-детектор для первопричины CVE-2022-2869 (CWE-191 беззнаковое переполнение вниз) с использованием анализа потока управления/диапазонов для выявления уязвимых шаблонов без жёсткого кодирования конкретных функций. | Kitploit
Инструменты/GitHubGitHub/halahajyahia/cve-2022-2869-detector
Статический анализАнализ уязвимостейАнализ КодаАнализ Бинарных Файлов
GitHubhalahajyahia/cve-2022-2869-detector

CVE-2022-2869-detector

CodeQL-детектор для первопричины CVE-2022-2869 (CWE-191 беззнаковое переполнение вниз) с использованием анализа потока управления/диапазонов для выявления уязвимых шаблонов без жёсткого кодирования конкретных функций.

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
9 ч 56 мин назадЕщё не проверено
Поделиться

CVE-2022-2869 CodeQL Детектор

Этот проект реализует универсальный CodeQL-детектор для корневой уязвимости, лежащей в основе CVE-2022-2869: беззнаковое вычитание, которое может привести к переполнению вниз (underflow), поскольку программа не установила достаточную защиту нижней границы/порядка перед выполнением арифметической операции.

Чем эта версия отличается от предыдущего запроса

Детектор намеренно сообщает о корневой причине (CWE-191), а не жёстко прописывает tiffcrop.c, имена функций или имена переменных. Он использует стандартную библиотеку CodeQL Overflow, чья логика проверки ограничений основана на анализе потока управления/диапазонов. Он не использует порядок номеров строк исходного кода как замену доминированию потока управления.

Файлы

  • UnsignedUnderflow.ql — основной детектор для отправки.
  • report.md — описание уязвимости и запроса.
  • test/mini_tiffcrop_like.c — небезопасные случаи, подобные CVE, плюс безопасные контрольные примеры.
  • test/mini_tiffcrop_variant.c — структурно иной вариант плюс безопасный контрольный пример.
  • test/EXPECTED_RESULTS.md — ожидаемое поведение для положительных/отрицательных случаев.
  • original/ORIGINAL_VALIDATION.md — что должно быть продемонстрировано на уязвимом LibTIFF.
  • Установка зависимостей query-pack

    Из этого каталога:

    root@kitploit:~
    codeql pack install
    

    Создание базы данных для небольших тестов

    Пример на Linux/WSL:

    root@kitploit:~
    codeql database create db-tests \
      --language=cpp \
      --command="gcc -std=c11 -O0 -g test/mini_tiffcrop_like.c -o /tmp/test1 && gcc -std=c11 -O0 -g test/mini_tiffcrop_variant.c -o /tmp/test2"
    

    Запустите запрос:

    root@kitploit:~
    codeql query run UnsignedUnderflow.ql --database=db-tests
    

    Демонстрация во время выполнения с AddressSanitizer

    Запрос CodeQL — это статический анализ. ASan — это дополнительное доказательство, показывающее последствия пользовательских вариантов.

    root@kitploit:~
    gcc -std=c11 -O0 -g -fsanitize=address test/mini_tiffcrop_like.c -o mini1
    ./mini1                 # безопасно
    ./mini1 unsafe-x2       # ожидаемая ошибка памяти
    
    gcc -std=c11 -O0 -g -fsanitize=address test/mini_tiffcrop_variant.c -o mini2
    ./mini2                 # безопасно
    ./mini2 unsafe          # ожидаемая ошибка памяти
    

    Проверка на оригинальном LibTIFF

    Создайте базу данных CodeQL из уязвимой ревизии LibTIFF (например, 4.3.0), затем запустите точно такой же запрос UnsignedUnderflow.ql против этой базы данных. Зафиксируйте результат в tools/tiffcrop.c, особенно в computeInputPixelOffsets.

    Детектор не должен быть изменён для упоминания tiffcrop, computeInputPixelOffsets, x2 или crop_width; в противном случае он был бы переобучен на один экземпляр CVE и не выполнил бы требование задания о вариативности.

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