CVE-2025-66038OpenSC 0.27.0之前版本存在内存破坏漏洞。在处理紧凑型TLV数据时,`sc_compacttlv_find_tag`函数未正确验证数据长度与缓冲区边界,导致可能返回越界指针。攻击者可利用构造的恶意数据触发越界读取,进而导致内存损坏。
该漏洞位于OpenSC的`sc_compacttlv_find_tag`函数中,涉及对紧凑型TLV(Tag-Length-Value)格式的解析。在紧凑型TLV中,单字节的高4位为标签,低4位为长度。当输入缓冲区为{0x0A}时,解析器识别为标签0、长度10。函数在搜索标签0x00时,错误地返回指向缓冲区末尾的指针及长度10,未校验剩余缓冲区大小。若后续代码据此指针读取数据,将发生越界内存访问,引发内存破坏。