PSA angesichts der aktuellen liblzma-Lücke: Es gibt ein Google-Projekt namens wuffs [0] mit Parsern für einige Dateiformate. Das ganze Projekt ist recht spannend, denn die haben da einen Übersetzer gebaut und eine eingeschränkte Programmiersprache. Der Übersetzer nimmt nur Programme an, bei denen er die Abwesenheit von Speicherfehlern und Integerüberläufen beweisen kann.
Die haben auch Dekompressionscode für lzw (GIF), inflate (gzip, zlib), bzip2 und lzma (xz, lzip). Die liefern ein Beispielprogramm namens mzcat mit, das ihre Library benutzt, und innerhalb eines Seccomp-Käfigs läuft, der nur read, write und exit erlaubt. Wenn also eine Lücke übrig bleibt und der Angreifer sie erfolgreich ausnutzt, kann er bloß Müll dekomprimieren, was er auch ohne den Angriff gekonnt hätte.
Die Library hat keine Abhängigkeiten.
Wenn ihr also mal Code schreiben müsst, der Daten dekomprimiert, und ihr wisst nicht, ob ihr denen trauen könnt oder nicht, dann nehmt wuffs.
Oh, und: Deren Dekompressoren sind auch noch signifikant schneller als die Standard-Dekompressoren.
Leider haben sie noch keinen zstandard-Dekompressor, aber der ist geplant.
[0] https://github.com/google/wuffs
https://blog.fefe.de/?ts=990bd317