WebP开源库漏洞影响深远 测试显示微信/钉钉/QQ等多款软件都面临风险 – 蓝点网 - {$web_name} 无需使用者开展任何交互

来源:饿虎擒羊网 | 栏目:时尚 | 2026-06-18 03:05:11

此前苹果亮相可靠公告修复 CVE-2023-41064 和 CVE-2023-4863 漏洞,攻击者运用该漏洞可以向 iPhone 和 iPad 发送特制信息,受害者移动电话或平板电脑只要收到这条信息就会触发漏洞,无需使用者开展任何交互,危害程度极高。

依据调研该漏洞被商业间谍使用企业用来开发间谍使用025原神精选专门针对一些高价值的特定使用者发起攻击,背后的目的自然不是以便钱。

事实证明这个漏洞并不只是威胁 iPhone 和 iPad,由于漏洞是 WebP 图像开源库 libwebp 中的,理论上只要使用调用了这个开源库那么都受作用。

所以当下 Google Chrome、Mozilla Firefox、Microsoft Edge 等阅读器均已亮相升级修复这个漏洞,但是还有很多使用并未修复。

PoC 概念测试已然被公开:

更糟糕的是当下网上已然呈现了该漏洞的 PoC,实际上有一些能力的黑客很轻松找出漏洞的运用方法,所以只需要制作特定图片开展投递即可,尽管不一定可以做到无感攻击,但想要顺利发起攻击并不难。

依然还有不少使用未升级:

联网可靠企业 DarkNavy (深蓝) 此前亮相了一篇确认报表,详细科幻大片精选依据深蓝的评测,境内也有很多使用受该漏洞作用,由于它们也需要调用 libwebp 开源库来加载 WebP 图像。

受作用的含有但不限于微信、钉钉、QQ 等国民级即时通讯 / 兴办类使用,当下这些使用都还没有亮相升级开展修复。

至于其他使用者量稍微比微信、钉钉、QQ 低一些的如果想要放弃,请记住一见钟情相似使用自然也受该漏洞作用,自然除了即时通讯、兴办类使用,其他能够发送和展示图片的使用多半也会受这个漏洞作用,只要这些使用扶持 WebP 图像,那么大约率都是调用 libwebp 开源库的。

所以在这里蓝点网也提醒各位近期碰到一些使用弹出的升级提示一定要及时升级,由于这很有或许就是用来修复该漏洞的。

尤其是在 PoC 已然被公开的状况下,这下会有很多黑客参与进来,到时候就不是详细旗舰手机排行针对高价值客户了,或许普通使用者也会被攻击。

深蓝强调:

在本案例中,漏洞发生在一个常用基础库中,实际受作用的使用商品数量超乎想象,但能及时修复漏洞的品牌方微乎其微。

管中窥豹,与 Chrome、Firefox 等团队相比,境内使用开发商在漏洞信息获取、漏洞研判、漏洞修复、应急响应等诸多环节存在显著不足。

只有可靠应急从被动走向主动,才能让“可靠”更真实。

下面是深蓝有关该漏洞的技术确认详情:

本次漏洞根源,位于 webp 图片的处理代码逻辑中。当确认一个无损格式的webp图片时,解码器使用了范式霍夫曼编码 (Canonical Huffman Code) 算力,先是从图片流中读取前缀编码的资料,基于此资料兴办一个完整的霍夫曼编码表,接着依照这个编码表对图片流中的压缩资料开展解码,得到原始的图像。

霍夫曼编码(Huffman Coding),是一种用于无损资料压缩的熵编码(权编码)算力。

在计算机资料处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)开展编码。

变长编码表经由一种评估来源符号呈现概率的方法得到,呈现概率高的字母使用较短的编码,反之呈现概率低的则使用较长的编码。

这可以使编码后的字符串平均长度、期望值下降,从而达到无损压缩资料的目的。

依据范式霍夫曼算力,在兴办一个霍夫曼表时,先是会使用一级表,用于查询长度小于 N bit (N 默觉得 8) 的霍夫曼编码;接着,若呈现了长度超过 N bit 的编码,解码器会为其分配二级表,用于查询超过 N bit 的编码若干。在分配霍夫曼编码表的存储空间时,解码器提前会将所有一级表和二级表的空间一并分配出来,其存储大小是固定的:

#define FIXED_TABLE_SIZE (630 * 3 + 410)static const uint16_t kTableSize[12] = { FIXED_TABLE_SIZE + 654,FIXED_TABLE_SIZE + 656,FIXED_TABLE_SIZE + 658,FIXED_TABLE_SIZE + 662,FIXED_TABLE_SIZE + 670,FIXED_TABLE_SIZE + 686,FIXED_TABLE_SIZE + 718,FIXED_TABLE_SIZE + 782,FIXED_TABLE_SIZE + 912,FIXED_TABLE_SIZE + 1168,FIXED_TABLE_SIZE + 1680,FIXED_TABLE_SIZE + 2704};const int table_size = kTableSize[color_cache_bits];huffman_tables = (HuffmanCode*)WebPSafeMalloc(num_htree_groups * table_size,sizeof(*huffman_tables));

难题在于,解码器默认图片中保存的霍夫曼编码表资料是合理的,所以提前计算了这一状况下能够容纳的最大存储长度。而霍夫曼编码表资料是来自不受信任源的,是可以由攻击者任意构造的,且编码器不会对这些资料开展有效性检查。

// Fill in 2nd level tables and add pointers to root table.for (len = root_bits + 1, step = 2; len <= MAX_ALLOWED_CODE_LENGTH;++len, step <<= 1) { num_open <<= 1;num_nodes += num_open;num_open -= count[len];if (num_open < 0) { return 0;}if (root_table == NULL) continue;for (; count[len] > 0; --count[len]) { HuffmanCode code;if ((key & mask) != low) { table += table_size;table_bits = NextTableBitSize(count, len, root_bits);table_size = 1 << table_bits;total_size += table_size;low = key & mask;root_table[low].bits = (uint8_t)(table_bits + root_bits);root_table[low].value = (uint16_t)((table - root_table) - low);}code.bits = (uint8_t)(len - root_bits);code.value = (uint16_t)sorted[symbol++];ReplicateValue(&table[key >> root_bits], step, table_size, code); // overflow herekey = GetNextKey(key, len);}}

所以,假如攻击者能够构造出一个非法的霍夫曼表,包含了众多的长编码,这将导致解码器将分配过多的二级表,使得霍夫曼表的总存储大小超过分配大小,发生堆缓冲区溢出。

上一篇:2024ChinaJoy,TCL华星诚挚邀您加入「星次元登陆计划」!

下一篇:新作《满足》首支预告片放出 《模拟山羊》公司开发

相关文章