Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-34556 — CVE-2022-34556에 대한 개념 증명(PoC) | Kitploit
도구/GitHubGitHub/halcy0nic/cve-2022-34556
Vulnerability AnalysisCode AnalysisExploitationFuzzingBinary AnalysisLearning & Education
GitHubhalcy0nic/cve-2022-34556

CVE-2022-34556

CVE-2022-34556에 대한 개념 증명(PoC)

저장소 보기
123년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-34556 설명

PicoC v3.2.2에서 variable.c에 NULL 포인터 역참조(null pointer dereference)가 발견되었습니다. Picoc를 사용하는 모든 프로젝트나 라이브러리도 이 문제의 영향을 받습니다. 예를 들어 picoc-js가 있습니다.

환경 설정

PicoC에서 NULL 포인터 역참조 취약점을 재현하려면 먼저 취약한 버전(v3.2.2)의 PicoC 라이브러리와 인터프리터를 다운로드하고 컴파일해야 합니다:

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

재현 단계

이 저장소에 포함된 poc.c 파일을 대상으로 인터프리터를 스크립트 모드로 실행합니다:

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

세그멘테이션 오류(segfault)가 발생하고 프로그램이 충돌합니다. 이는 라이브러리나 인터프리터에서 포착하거나 처리되지 않은 NULL 포인터 역참조의 결과입니다. 주소 삭제 도구(ASAN)를 사용하여 프로젝트를 다시 컴파일하면 이 문제가 발생하는 위치를 더 잘 파악할 수 있습니다. Makefile의 CFLAGS 변수에 -fsanitize=address를 추가하고 라이브러리를 다시 컴파일해 보겠습니다:

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

라이브러리와 인터프리터를 다시 컴파일합니다(picoc 루트 디렉토리에서):

root@kitploit:~
make clean
make

프로그램을 실행하면 ASAN에서 다음과 같은 출력이 나타나며, variable.c의 519행에서 NULL 포인터 역참조가 발생함을 보여줍니다:

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

취약한 소스 코드:

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

참고 자료

  • https://owasp.org/www-community/vulnerabilities/Null_Dereference
  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-34556
도구 다운로드