wpd:更安全的WebP解码器来了

Memory-Safe WebP Decoding

wpd:更安全的WebP解码器来了

我们推出了wpd,一个比libwebp更快且更安全的WebP解码器。针对CVE-2023-4863等内存安全漏洞,wpd采用Rust编写,结合手写汇编优化性能,确保在多线程和单线程场景下均超越现有方案。它不仅支持lossy和lossless解码,还具备动画帧处理、格式提取等丰富功能,旨在成为libwebp的全面替代品。项目开源且采用BSD 2-Clause许可,欢迎社区参与,共同提升Web安全。

wpd是用Rust编写的,并辅以手写汇编例程以提升性能,其SIMD代码经过严格范围限定和正确性检查,主要位于风险较低的区域。
  1. jessa0

    相关的还有 Signal Messenger 的 webpsan crate,它在将数据传给 libwebp 之前会先验证 WebP 容器的语法。不过,它并没有做到实际解码像素数据,因为 WebP 的工作机制要求分配整个画布才能完全解码像素数据,如果做到那一步,webpsan 本质上也就成了一个完整的解码器了。

    https://docs.rs/webpsan/latest/webpsan/

  2. ZeroGravitas

    作为谷歌为其即将发布的 Gemini 4 Argon LLM 所做的公关活动的一部分,他们提到用 Rust 重写了部分内容,替换了手写 SIMD 代码。但我没看到提到 WebP。

    他们说道:

    > 大规模代码库迁移与优化:Argon 智能体正在谷歌内部将 C/C++ 代码库迁移至 Rust——范围从核心库(如 re2、libgav1)的数万行代码,到 Fuchsia Zircon 内核的 80 万行以上。鉴于这些系统的关键性,此类大规模重写在投入生产前都经过了严格的自动化和人工审计、仿真测试以及代码审查。

    > 对于 libgav1(谷歌用于视频解码的开源软件),Argon 智能体基于现有的 Rust 移植版本,通过多轮基于性能分析的实验、研究编译器输出,生成了安全的 Rust 代码,让编译器能自动进行向量化优化。最终结果是一个内存安全的视频解码器,运行速度比原有的 Rust 移植版快 2.7 倍,且视频输出完全一致,性能已接近优化后的 C++ 版本。

  3. omoikane

    我不太确定基于 Wuffs 的 WebP 解码器目前的进展如何,但这也值得拿来比较,因为它同样追求安全与速度。

    https://github.com/google/wuffs/tree/main/std/webp

同日更多故事

2026-10-03