Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/halcy0nic/cve-2022-34556
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónFuzzingAnálisis de BinariosAprendizaje y Educación
GitHubhalcy0nic/cve-2022-34556

CVE-2022-34556

Prueba de concepto para CVE-2022-34556

Ver Repositorio
12hace 3 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Descripción de CVE-2022-34556

Se descubrió que PicoC v3.2.2 contiene una desreferencia de puntero nulo en variable.c. Cualquier proyecto o biblioteca que utilice Picoc también sufre este problema. Un ejemplo de ello sería picoc-js.

Configurando nuestro entorno

Para replicar la vulnerabilidad de desreferencia de puntero nulo en PicoC, primero debemos descargar y compilar una versión vulnerable (v3.2.2) de la biblioteca y del intérprete de PicoC:

root@kitploit:~
git clone https://github.com/jpoirier/picoc.git
cd picoc
git checkout a97d94fa3d4d35c6b78b7de69faac7643e34de22
make

Pasos de Reproducción

Ejecute el intérprete en modo script con el archivo poc.c incluido en este repositorio:

root@kitploit:~
$ ./picoc -s poc.c

Recibirá un fallo de segmentación (segfault) y el programa se bloqueará. Esto es el resultado de una desreferencia de puntero nulo que no es capturada ni manejada por la biblioteca ni por el intérprete. Podemos recompilar el proyecto con address sanitizer (ASAN) para tener una mejor idea de dónde ocurre esto. Agreguemos -fsanitize=address a la variable CFLAGS en el Makefile y recompilemos la biblioteca:

root@kitploit:~
CFLAGS=-Wall -g -std=gnu11 -pedantic -DUNIX_HOST -DVER=\"`git show-ref --abbrev=8 --head --hash head`\" -DTAG=\"`git describe --abbrev=0 --tags`\" -fsanitize=address
Descargar herramienta

Recompile la biblioteca y el intérprete (desde el directorio raíz de picoc):

root@kitploit:~
make clean
make

Cuando ejecutamos nuestro programa, obtenemos la siguiente salida de ASAN que nos muestra que la desreferencia de puntero nulo ocurre en la línea 519 de variable.c:

Salida de ASAN:

root@kitploit:~
AddressSanitizer:DEADLYSIGNAL
=================================================================
==157769==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000018 (pc 0x55b55571240e bp 0x7ffe4f5c39b0 sp 0x7ffe4f5c3980 T0)
==157769==The signal is caused by a READ memory access.
==157769==Hint: address points to the zero page.
    #0 0x55b55571240e in VariableDereferencePointer /dev/shm/picoc/variable.c:519
    #1 0x55b5556fefea in ExpressionStackPushDereference /dev/shm/picoc/expression.c:430
    #2 0x55b555701881 in ExpressionPrefixOperator /dev/shm/picoc/expression.c:687
    #3 0x55b5557053d5 in ExpressionStackCollapse /dev/shm/picoc/expression.c:1257
    #4 0x55b555706e35 in ExpressionParse /dev/shm/picoc/expression.c:1553
    #5 0x55b5556fb6a0 in ParseStatement /dev/shm/picoc/parse.c:646
    #6 0x55b5556fd380 in PicocParse /dev/shm/picoc/parse.c:897
    #7 0x55b555715d0e in PicocPlatformScanFile platform/platform_unix.c:129
    #8 0x55b5556ec213 in main /dev/shm/picoc/picoc.c:62
    #9 0x7f15bd767189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #10 0x7f15bd767244 in __libc_start_main_impl ../csu/libc-start.c:381
    #11 0x55b5556ebd40 in _start (/dev/shm/picoc/picoc+0x16d40)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /dev/shm/picoc/variable.c:519 in VariableDereferencePointer
==157769==ABORTING

Código fuente vulnerable:

root@kitploit:~
519: *DerefType = PointerValue->Typ->FromType;

Referencias

  • https://owasp.org/www-community/vulnerabilities/Null_Dereference
  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-34556