漏洞概述 在 函数中,对属性缓冲区进行写入时没有进行边界检查,导致缓冲区溢出。具体来说, 分配了一个固定大小的属性缓冲区(70 个槽位),而 遍历源字体的属性并写入 1 个槽位给未缩放属性或 2 个槽位给缩放/缩放属性,但没有进行边界检查。如果一个字体包含许多重复的属性,匹配 条目可能会超出分配的缓冲区。 影响范围 该漏洞影响所有使用 函数处理字体属性的场景,特别是当字体包含大量重复属性时,可能导致缓冲区溢出,进而可能引发安全漏洞。 修复方案 修复方法是在每次写入之前,将剩余的缓冲区容量传递给 ,并在写入前进行检查。超出缓冲区的属性将被静默跳过。此外,函数被重构,将缩放/缩放属性的写入操作放在单独的块中,而不是直接在 switch 语句中处理,以确保边界检查覆盖所有写入操作。 代码块 其他信息 CVE 编号: CVE-2020-50005/ZDI-CAN-30508 发现者: Anonymous working with TrendAI Zero Day Initiative 协助者: Claude 签名者: Peter Hutterer 部分来源: