LibXMP中的栈溢出
libxmp(一个用于模块音乐播放的库)的 depack_pha() 函数中存在基于栈的缓冲区溢出漏洞。当解析恶意构造的 Pha Packer (PHA) 模块文件时会触发该漏洞。
由于对局部栈缓冲区缺乏适当的边界检查,攻击者可以向数组边界之外写入数据,可能导致拒绝服务 (DoS),且在特定条件下可能实现远程代码执行 (RCE)。
构建:
gcc -g -O0 -I./libxmp/include poc.c poc_data.h ./libxmp/lib/libxmp.a -lm -lz -o poc_crasher
栈缓冲区溢出
libxmp 项目 GitHub:https://github.com/libxmp/libxmp 问题:https://github.com/libxmp/libxmp/issues/847
src/loaders/prowizard/pha.c 函数:depack_pha()
拒绝服务 (DoS) 在特定构建或运行时条件下可能远程代码执行 (RCE)
攻击者可以构造一个恶意的 Pha Packer 格式的 .mod 或 .pha 文件,并将其提供给任何链接了 libxmp 的应用程序。该恶意文件会在 depack_pha() 的模式解析过程中导致栈缓冲区溢出。
此问题正在通过 GitHub Issues 向 libxmp 维护者报告。
Gareth C - https://www.anchorsec.co.uk