Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2022-34556 — Prova di concetto per CVE-2022-34556 | Kitploit
Strumenti/GitHubGitHub/halcy0nic/cve-2022-34556
Analisi delle VulnerabilitàAnalisi del CodiceExploitFuzzingAnalisi di BinariApprendimento e Formazione
GitHubhalcy0nic/cve-2022-34556

CVE-2022-34556

Prova di concetto per CVE-2022-34556

Vedi Repository
123 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Descrizione di CVE-2022-34556

È stato scoperto che PicoC v3.2.2 contiene una dereferenziazione di puntatore nullo in variable.c. Anche qualsiasi progetto o libreria che utilizza Picoc è affetto da questo problema. Un esempio è picoc-js.

Configurazione dell'ambiente

Per replicare la vulnerabilità di dereferenziazione del puntatore nullo in PicoC, dobbiamo prima scaricare e compilare una versione vulnerabile (v3.2.2) della libreria e dell'interprete PicoC:

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

Passaggi per la riproduzione

Esegui l'interprete in modalità script sul file poc.c incluso in questo repository:

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

Riceverai un segfault e il programma andrà in crash. Questo è il risultato di una dereferenziazione di puntatore nullo che non viene intercettata né gestita dalla libreria o dall'interprete. Possiamo ricompilare il progetto con l'address sanitizer (ASAN) per avere un'idea più chiara di dove avviene il problema. Aggiungiamo -fsanitize=address alla variabile CFLAGS nel Makefile e ricompiliamo la libreria:

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
Scarica lo strumento

Ricompila la libreria e l'interprete (dalla directory principale di picoc):

root@kitploit:~
make clean
make

Quando eseguiamo il nostro programma, otteniamo il seguente output da ASAN che ci mostra come la dereferenziazione del puntatore nullo avvenga alla riga 519 di variable.c:

Output di 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

Codice sorgente vulnerabile:

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

Riferimenti

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