Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2022-34556 — CVE-2022-34556 的概念验证 | Kitploit
工具/GitHubGitHub/halcy0nic/cve-2022-34556
漏洞分析代码分析漏洞利用模糊测试二进制分析学习与教育
GitHubhalcy0nic/cve-2022-34556

CVE-2022-34556

CVE-2022-34556 的概念验证

查看仓库
123年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2022-34556 描述

PicoC v3.2.2 被发现在 variable.c 中存在空指针解引用(NULL pointer dereference)漏洞。任何使用 Picoc 的项目或库都会受到此问题的影响,例如 picoc-js。

搭建环境

要复现 PicoC 中的空指针解引用漏洞,我们首先需要下载并编译存在漏洞的 PicoC 库和解释器版本(v3.2.2):

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

复现步骤

针对本仓库中的 poc.c 文件,以脚本模式执行解释器:

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

程序将发生段错误并崩溃。这是库或解释器未捕获或未处理的空指针解引用所导致的结果。我们可以使用地址消毒器(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 行:

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
下载工具