漏洞概述 标题: Heap buffer overflow in TGA RLE decoder — raw packet path missing bounds check (tga.c:309) 描述: TGA 编解码器的 RLE 解码器在 中存在一个不对称的边界检查漏洞。运行包路径(第 297 行)正确地根据剩余缓冲区空间重复计数,但原始包路径(第 305-311 行)没有等效的边界检查。这允许将多达 496 字节的攻击者控制数据写入堆缓冲区末尾之外。 影响范围: 软件: sail 受影响版本: <= 1.0.0 修复版本: None 严重性: Critical (9.8 / 10) CVSS v3 基础指标: - 攻击向量: Network - 攻击复杂度: Low - 所需权限: None - 用户交互: None - 范围: Unchanged - 机密性: High - 完整性: High - 可用性: High CVE ID: CVE-2026-40494 弱点: CWE-787 影响: 任何使用 SAIL 从不受信任的来源加载 TGA 文件的应用程序都容易受到任意代码执行的影响。攻击者完全控制溢出大小和内容。 修复方案 添加相同的边界钳位到原始包路径: POC 代码 Proof of Concept: Craft a TGA file with: Buffer allocated: 4 4 = 16 bytes RLE stream: raw packet marker 0x7F (count=128), followed by 128 4 = 512 bytes Result: 496-byte heap buffer overflow with attacker-controlled data ASan Verification: Confirmed with AddressSanitizer (GCC 13.3, Ubuntu 24.04 x86_64):