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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-44311 — Out-Of-Bounds Read in html2xhtml : CVE-2022-44311 | Kitploit
Инструменты/GitHubGitHub/desmondsanctity/cve-2022-44311
Memory ForensicsVulnerability AnalysisExploitationFuzzingBinary AnalysisLearning & Education
GitHubdesmondsanctity/cve-2022-44311

CVE-2022-44311

Out-Of-Bounds Read in html2xhtml : CVE-2022-44311

Репозиторий
23 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Чтение за пределами границ в html2xhtml: CVE-2022-44311

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

Html2xhtml v1.3 был обнаружен как содержащий чтение за пределами границ в функции static void elm_close(tree_node_t *nodo) в procesador.c. Эта уязвимость позволяет злоумышленникам получать доступ к конфиденциальным файлам или вызывать отказ в обслуживании (DoS) с помощью специально созданного HTML-файла.

CWE-125 Чтение за пределами границ — это тип программной ошибки, которая может возникнуть при чтении данных из памяти. Это может произойти, если программа пытается прочитать за пределами массива, например. Чтения за пределами границ могут привести к сбоям или другим неожиданным уязвимостям и могут позволить злоумышленнику прочитать конфиденциальную информацию, к которой он не должен иметь доступа.

Продукт

html2xhtml

Протестированная версия

1.3

Детали

Проблема: Чтение за пределами границ в html2xhtml/src/procesador.c. (GHSA-28fm-qh2h-3mch)

Html2xhtml — это инструмент командной строки, который преобразует HTML-файлы в XHTML-файлы. Html2xhtml может генерировать вывод XHTML, соответствующий одному из следующих типов документов: XHTML 1.0 (Transitional, Strict и Frameset), XHTML 1.1, XHTML Basic и XHTML Mobile Profile.

Уязвимость была обнаружена из-за ошибки segfault, возникающей при использовании опции -t frameset. Ошибка сегментации или segfault — это особый вид ошибки, вызванный доступом к памяти, которая вам не принадлежит. Это вспомогательный механизм, предотвращающий повреждение памяти и появление трудно отлаживаемых ошибок памяти.

С помощью Valgrind, инструмента для поиска ошибок доступа к памяти кучи (памяти, динамически выделяемой с помощью new или malloc) в программах на C и C++, ошибка segfault была отлажена, и он сообщил о недопустимом чтении размером 4 в тестовом случае:

root@kitploit:~
==1040381== Memcheck, a memory error detector
==1040381== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==1040381== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==1040381== Command: ./src/html2xhtml -t frameset report/vuln/id:000000,sig:11,src:001386+001369,time:12081510,execs:2336913,op:splice,rep:16
==1040381== 
==1040381== Invalid read of size 4
==1040381==    at 0x40E911: elm_close (procesador.c:944)
==1040381==    by 0x410617: err_html_struct (procesador.c:1889)
==1040381==    by 0x40F20A: err_content_invalid (procesador.c:0)
==1040381==    by 0x40F20A: elm_close (procesador.c:959)
==1040381==    by 0x40E7C4: saxEndDocument (procesador.c:233)
==1040381==    by 0x40DF7A: main (html2xhtml.c:117)
==1040381==  Address 0x6f20d4 is not stack'd, malloc'd or (recently) free'd
==1040381== 
==1040381== 
==1040381== Process terminating with default action of signal 11 (SIGSEGV)
==1040381==  Access not within mapped region at address 0x6F20D4
==1040381==    at 0x40E911: elm_close (procesador.c:944)
==1040381==    by 0x410617: err_html_struct (procesador.c:1889)
==1040381==    by 0x40F20A: err_content_invalid (procesador.c:0)
==1040381==    by 0x40F20A: elm_close (procesador.c:959)
==1040381==    by 0x40E7C4: saxEndDocument (procesador.c:233)
==1040381==    by 0x40DF7A: main (html2xhtml.c:117)
==1040381==  If you believe this happened as a result of a stack
==1040381==  overflow in your program's main thread (unlikely but
==1040381==  possible), you can try to increase the size of the
==1040381==  main thread stack using the --main-stacksize= flag.
==1040381==  The main thread stack size used in this run was 8388608.
==1040381== 
==1040381== HEAP SUMMARY:
==1040381==     in use at exit: 88,190 bytes in 13 blocks
==1040381==   total heap usage: 22 allocs, 9 frees, 2,218,413 bytes allocated
==1040381== 
==1040381== LEAK SUMMARY:
==1040381==    definitely lost: 0 bytes in 0 blocks
==1040381==    indirectly lost: 0 bytes in 0 blocks
==1040381==      possibly lost: 0 bytes in 0 blocks
==1040381==    still reachable: 88,190 bytes in 13 blocks
==1040381==         suppressed: 0 bytes in 0 blocks
==1040381== Rerun with --leak-check=full to see details of leaked memory
==1040381== 
==1040381== For lists of detected and suppressed errors, rerun with: -s
==1040381== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==1040419== Memcheck, a memory error detector

Журнал ошибок от Valgrind привел нас к следующей функции, в которой произошел segfault:

https://github.com/jfisteus/html2xhtml/blob/ffb2f1f12910eb5945413e0bdb9272b508241aa1/src/procesador.c#L940

image

Было обнаружено, что в функции отсутствует проверка типа. Пользователь передавал в функцию узел типа comment вместо element, что приводит к ошибке чтения за пределами границ. Пользователь мог предоставить некорректный документ с недопустимым ELM_PTR(nodo).contenttype[doctype], что приводит к следующему сравнению в ассемблере:

root@kitploit:~
cmp    dword ptr [rbp + rax*4 + 0xc], 4

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

Воздействие

  • Эта проблема может быть использована злоумышленниками для чтения конфиденциальной памяти, местоположений или файлов.
  • Злоумышленники также могут вызвать атаку типа «отказ в обслуживании» (DoS) с помощью специально созданного HTML-файла.

Исправления

  • Эта уязвимость затрагивает любого пользователя, использующего любую из упакованных версий программного обеспечения. Исправление привязано к этому коммиту в ветке master репозитория GitHub.
  • Пользователям рекомендуется скачать последние обновления пакета от 25 октября 2022 года или позднее и скомпилировать на своем компьютере. После исправления ошибки нет нового релиза или версионирования.

Ресурсы

  • https://nvd.nist.gov/vuln/detail/CVE-2022-44311
  • jfisteus/html2xhtml#19
  • https://securityboulevard.com/2022/06/what-is-an-out-of-bounds-read-and-out-of-bounds-write-error/
  • https://cwe.mitre.org/data/definitions/125.html

Базовые метрики CVSS

CVE

  • CVE-2022-44311

Благодарности

  • Эта проблема была обнаружена и сообщена пользователем @Halcy0nic в виде issue в репозиторий программного обеспечения html2xhtml.
Скачать инструмент
Степень серьезностиВысокий 8.1 / 10
Сложность атакиНизкая
Требуемые привилегииНет
Взаимодействие с пользователемТребуется
Область действияНеизменна
КонфиденциальностьВысокая
ЦелостностьНет
ДоступностьВысокая