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

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

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 беззнаковое переполнение вниз) с использованием анализа потока управления/диапазонов для выявления уязвимых шаблонов без жёсткого кодирования конкретных функций.

Репозиторий

Популярное

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

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

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

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

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

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

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

codeql pack install

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

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

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"

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

codeql query run UnsignedUnderflow.ql --database=db-tests

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

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

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 и не выполнил бы требование задания о вариативности.

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