CVE-2025-50360CVE-2025-50360是Pepper语言编译器中的一个高危安全漏洞,CVSS评分8.4。该漏洞位于compiler.c和compiler.h文件中,是由于堆缓冲区溢出导致的。攻击者可以通过构造恶意的.pepper源文件(.pr文件)来触发此漏洞,成功利用后可导致任意代码执行或拒绝服务(DoS)攻击。
Pepper是一种轻量级编程语言,版本0.1.1在处理编译器输入时存在边界检查不足的问题。攻击者利用精心构造的输入数据,可以使编译器在处理时超出堆内存分配边界,从而造成缓冲区溢出。这种溢出可能导致程序崩溃(DoS)或被攻击者利用来执行任意代码。
由于攻击向量为本地(AV:L),需要攻击者能够向目标系统提供恶意的.pepper文件,因此主要威胁场景包括:开发人员使用受污染的代码文件、自动化构建系统处理不可信来源的Pepper代码,或通过社会工程学手段诱导用户打开恶意文件。鉴于该漏洞的严重性和潜在的任意代码执行风险,建议相关用户立即采取修复措施。
该漏洞为经典的堆缓冲区溢出(Heap Buffer Overflow)类型,存在于Pepper语言编译器的compiler.c和compiler.h模块中。
漏洞原理:编译器在解析.pepper源文件时,对于某些数据结构(如字符串、数组或结构体)的内存分配和访问缺乏充分的边界检查。当处理恶意构造的输入时,编译器可能分配一个固定大小的堆内存区域,但在写入数据时未正确验证数据长度是否在分配范围内,导致数据溢出到相邻的堆内存区域。
利用方式:攻击者创建一个包含超长字符串、嵌套结构或特殊构造数据的.pepper文件(.pr扩展名),当编译器解析该文件时,溢出的数据可以覆盖堆中的关键元数据、函数指针或其他重要数据结构。通过精心设计溢出数据,攻击者可以实现控制流劫持,最终执行任意代码。
受影响代码位置:
- 文件:compiler.c, compiler.h
- 版本:commit 961a5d9988c5986d563310275adad3fd181b2bb7
- 函数:推测为解析器相关函数,在处理输入标记(token)时未进行长度验证
漏洞触发条件:
1. 攻击者需要诱使目标用户或系统使用存在漏洞的编译器版本打开/编译恶意.pepper文件
2. 恶意文件需要包含特定构造的数据以触发堆溢出
3. 编译器版本需为0.1.1的特定commit版本