Lhaca LZH文档畸形Extended Header Size值栈缓冲区溢出漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

Lhaca是一款由日本开发的免费文档压缩解压工具。 Lhaca在处理畸形的LHA文档时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞通过诱使用户处理恶意文件控制用户机器。 Lhaca没有充分地验证从LHA文件读取的Extended Header Size值便将其拷贝到了Extended Header Data字节数的栈缓冲区,如果Extended Header Size值大于255的话就可能触发缓冲区溢出,导致执行任意指令;此外由于没有正确地使用strncpy()还可能导致进一步覆盖该缓冲区。有漏洞的函数如下: function_40D974(FILE *fp, char *outbuffer) { char var_1408[4096]; char overflowedBuffer[255]; //var_408 char var_309[769]; DWORD var_8; DWORD var_4; var_4 = 0; memset(outbuffer, 0, 0x12c); // clear 300-byte buffer ... ... fseek(fp, 1, SEEK_SET); ... ... if(fread(&var_1408[1], 1, 0x24, fp) < 0x24) { // exit with error "Invalid header (LHarc file ?)" } globalReadBufPtr = &var_1408[20]; // header-level byte position outbuffer[0x15] = *globalReadBufPtr; globalReadBufPtr++; if(outbuffer[0x15] != 2) // check header level { if(fread(&var_1408[0x25], 1, 2, fp) < 2) // read length of extended header { // exit with error "Invalid header (LHarc file ?)" } } if(outbuffer[0x15] >= 3) { // exit with...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息