wpd: Sicherer WebP-Decoder in Rust mit bis zu 3,19-facher Geschwindigkeit
Memory-Safe WebP Decoding

Halide hat wpd veröffentlicht, einen in Rust geschriebenen WebP-Decoder, der libwebp ersetzt und Speichersicherheitslücken wie CVE-2023-4863 vermeiden soll. Benchmarks zeigen: 1,19x schneller bei verlustbehafteter Einzelthread-Dekodierung, 2,74x bei verlustfreier, und bis zu 3,19x mit mehreren Threads. wpd bietet volle libwebp-Funktionsparität plus zusätzliche Features wie explizite Thread-Steuerung und parallele Animation-Dekodierung. Der Code steht unter BSD 2-Clause.
Laut dem Chromium-Team stammen etwa 70 % ihrer schwerwiegenden Sicherheitsfehler von Problemen mit der Speichersicherheit.
- jessa0
Verwandt dazu ist die webpsan-Crate von Signal Messenger, die die Syntax des WebP-Containers validiert, bevor er an libwebp weitergegeben wird. Sie hört jedoch kurz vor der Dekodierung der eigentlichen Pixeldaten auf, denn die Funktionsweise von WebP erfordert, dass die gesamte Canvas alloziert wird, um die Pixeldaten vollständig zu dekodieren, was webpsan ohnehin zu einem vollwertigen Decoder gemacht hätte..
- omoikane
Ich bin mir nicht sicher, wie der aktuelle Status des Wuffs-basierten WebP-Decoders ist, aber das wäre eine weitere Implementierung, die einen Vergleich wert wäre, da sie dieselben Ziele von Sicherheit und Geschwindigkeit verfolgt.
- computerbuster