Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2022-44311 — Lecture hors limites dans html2xhtml : CVE-2022-44311 | Kitploit
Outils/GitHubGitHub/desmondsanctity/cve-2022-44311
Criminalistique MémoireAnalyse des VulnérabilitésExploitationFuzzingAnalyse de BinairesApprentissage et Éducation
GitHubdesmondsanctity/cve-2022-44311

CVE-2022-44311

Lecture hors limites dans html2xhtml : CVE-2022-44311

Voir le dépôt
2il y a 3 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Lecture hors limites dans html2xhtml : CVE-2022-44311

Résumé

Html2xhtml v1.3 s'est avéré contenir une lecture hors limites dans la fonction static void elm_close(tree_node_t *nodo) de procesador.c. Cette vulnérabilité permet à des attaquants d'accéder à des fichiers sensibles ou de provoquer un déni de service (DoS) via un fichier HTML malveillant.

CWE-125 Lecture hors limites est un type d'erreur logicielle qui peut se produire lors de la lecture de données en mémoire. Cela peut arriver, par exemple, si le programme tente de lire au-delà de la fin d'un tableau. Les lectures hors limites peuvent entraîner des crashs ou d'autres vulnérabilités inattendues, et peuvent permettre à un attaquant de lire des informations sensibles auxquelles il ne devrait pas avoir accès.

Produit

html2xhtml

Version testée

1.3

Détails

Problème : Lecture hors limites dans html2xhtml/src/procesador.c. (GHSA-28fm-qh2h-3mch)

Html2xhtml est un outil en ligne de commande qui convertit des fichiers HTML en fichiers XHTML. Html2xhtml peut générer une sortie XHTML conforme à l'un des types de documents suivants : XHTML 1.0 (Transitional, Strict et Frameset), XHTML 1.1, XHTML Basic et XHTML Mobile Profile.

La vulnérabilité a été découverte à la suite d'une erreur de segmentation (segfault) survenue lors de l'utilisation de l'option -t frameset. Un défaut de segmentation ou segfault est un type d'erreur spécifique provoqué par l'accès à une mémoire qui ne vous appartient pas. C'est un mécanisme de protection qui vous évite de corrompre la mémoire et d'introduire des bogues mémoire difficiles à déboguer.

Grâce à Valgrind, un outil permettant de détecter les erreurs d'accès à la mémoire tas (mémoire allouée dynamiquement avec new ou malloc) dans les programmes C et C++, l'erreur de segfault a été déboguée et a signalé une lecture non valide de taille 4 dans le cas de test :

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

Le journal d'erreurs de Valgrind nous a conduit à la fonction suivante où le segfault s'est produit :

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

image

Il a été constaté qu'une vérification de type manque dans la fonction. L'utilisateur passait un nœud de type comment au lieu de element à la fonction, ce qui entraîne une erreur de lecture hors limites. Un utilisateur pourrait fournir un document malformé avec un ELM_PTR(nodo).contenttype[doctype] non valide, ce qui donne la comparaison en assembleur suivante :

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

Cette vulnérabilité peut être exploitée par des attaquants pour lire des fichiers, de la mémoire ou des emplacements sensibles à l'aide d'un fichier falsifié.

Impact

  • Cette faille peut être exploitée par des attaquants pour lire de la mémoire, des emplacements ou des fichiers sensibles.
  • Les attaquants peuvent également provoquer une attaque par déni de service (DoS) via un fichier HTML malveillant.

Correctifs

  • Cette vulnérabilité affecte tout utilisateur utilisant l'une des versions packagées du logiciel. Un correctif est lié à ce commit dans la branche master du dépôt GitHub du logiciel.
  • Les utilisateurs sont invités à récupérer les mises à jour récentes du paquet datées du 25 octobre 2022 ou ultérieures et à compiler sur leur machine. Il n'y a pas de nouvelle version ni de reversionnage après le correctif.

Ressources

  • 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

Métriques de base CVSS

CVE

  • CVE-2022-44311

Crédits

  • Ce problème a été découvert et signalé par @Halcy0nic comme problème au dépôt logiciel de html2xhtml.
Télécharger l’outil
SévéritéÉlevée 8.1 / 10
Complexité de l'attaqueFaible
Privilèges requisAucun
Interaction utilisateurRequise
PortéeInchangée
ConfidentialitéÉlevée
IntégritéAucune
DisponibilitéÉlevée