特別に設計されたデータを圧縮する際に発生する zlib の脆弱性

zlib ライブラリに脆弱性 (CVE-2018-25032) が確認されており、受信データ内の特別に準備された文字シーケンスを圧縮しようとするとバッファ オーバーフローが発生します。 現在の形式では、プロセスを異常終了させる能力があることが研究者によって実証されています。 この問題がより深刻な結果をもたらす可能性があるかどうかはまだ研究されていません。

この脆弱性はバージョン zlib 1.2.2.2 から発生し、zlib 1.2.11 の現在のリリースにも影響します。 注目に値するのは、この脆弱性を修正するパッチが 2018 年に提案されましたが、開発者はそれに注意を払わず、修正リリースをリリースしなかったことです (zlib ライブラリの最終更新は 2017 年でした)。 この修正は、ディストリビューションによって提供されるパッケージにもまだ含まれていません。 Debian、RHEL、Fedora、SUSE、Ubuntu、Arch Linux、OpenBSD、FreeBSD、NetBSD のページで、ディストリビューションごとの修正の公開を追跡できます。 zlib-ng ライブラリはこの問題の影響を受けません。

この脆弱性は、入力ストリームにパックされる一致が多数含まれており、固定ハフマン コードに基づいてパックが適用される場合に発生します。 特定の状況下では、圧縮結果が配置される中間バッファの内容が、シンボル頻度テーブルが格納されているメモリと重複する可能性があります。 その結果、不正な圧縮データが生成され、バッファ境界外への書き込みによりクラッシュします。

この脆弱性は、固定ハフマン コードに基づく圧縮戦略を使用した場合にのみ悪用されます。 コード内で Z_FIXED オプションが明示的に有効になっている場合も、同様の戦略が選択されます (Z_FIXED オプションの使用時にクラッシュを引き起こすシーケンスの例)。 コードから判断すると、データに対して計算された最適ツリーと静的ツリーが同じサイズであれば、Z_FIXED 戦略も自動的に選択されます。

デフォルトの Z_DEFAULT_STRATEGY 圧縮戦略を使用して脆弱性を悪用する条件を選択できるかどうかはまだ明らかではありません。 そうでない場合、脆弱性は Z_FIXED オプションを明示的に使用する特定のシステムに限定されます。 もしそうであれば、zlib ライブラリは事実上の標準であり、Linux カーネル、OpenSSH、OpenSSL、apache httpd、libpng、FFmpeg、rsync、dpkg などの多くの人気のあるプロジェクトで使用されているため、脆弱性による被害は非常に深刻になる可能性があります。 、rpm、Git、PostgreSQL、MySQL など。

出所: オープンネット.ru

コメントを追加します