CVE-2025-15155CVE-2025-15155是floooh sokol图形库中的一个栈缓冲区溢出漏洞。该漏洞存在于sokol_gfx.h文件中的_sg_pipeline_desc_defaults函数,由于对内存操作缺乏适当的边界检查,导致攻击者可以通过构造特定的输入数据触发栈缓冲区溢出。sokol是一个轻量级跨平台图形和计算库,被广泛应用于游戏开发和嵌入式系统中。该漏洞的CVSS评分为5.3,属于中等严重程度。攻击者需要本地访问权限且拥有低权限即可利用此漏洞,无需用户交互即可完成攻击。漏洞利用已被公开,攻击者可能通过恶意构造的图形管线描述符数据来触发缓冲区溢出,从而可能导致程序崩溃或执行任意代码。sokol项目未采用版本号管理机制,因此无法确定具体受影响的版本范围。项目维护者已在commit 5d11344150973f15e16d3ec4ee7550a73fb995e0中发布了安全补丁,建议用户尽快更新以修复此漏洞。
该漏洞的核心问题在于_sg_pipeline_desc_defaults函数在处理图形管线描述符(pipeline descriptor)时存在栈缓冲区溢出。在sokol图形库中,管线描述符用于定义渲染管线的各种参数,包括顶点格式、着色器、资源绑定等。该函数在初始化默认管线描述符值时,直接对栈上的缓冲区进行写入操作而未进行充分的边界验证。当攻击者能够控制输入的管线描述符数据时,可以构造超出预期大小的数据,导致数据被写入栈缓冲区的边界之外。栈缓冲区溢出可能导致以下后果:1)覆盖相邻栈帧中的返回地址,控制程序执行流程;2)覆盖函数指针或关键变量,劫持程序行为;3)触发栈保护机制导致程序崩溃,形成拒绝服务条件。由于sokol通常作为嵌入式库集成在应用程序中,攻击者可能通过恶意输入文件、配置数据或网络协议来触发漏洞。成功利用此漏洞需要攻击者具备本地代码执行能力,但权限要求较低。