セキュリティ研究者は、広く展開されている参照ライブラリ libpng の 2 つの高い重要度の脆弱性を開示しました。このライブラリは Portable Network Graphics (PNG) 画像ファイルの処理に使用されています。
これらの重大な欠陥により、リモート攻撃者が特別に細工された標準準拠の PNG 画像をアプリケーションに処理させることで、プロセスのクラッシュをトリガーし、機密ヒープメモリを漏らし、任意のコード実行を達成することができます。
どちらの脆弱性も、影響を受けたソフトウェアエコシステムを保護するために直ちにパッチが必要です。
最初の脆弱性は CVE-2026-33416 として追跡され、CVSS 重要度スコアは 8.1 で、ライブラリの透明度とパレット処理コード内の use-after-free 条件に由来しています。
アプリケーションがメモリを解放するとき、バッファは一方の構造体を通じて解放されますが、もう一方に危険なダングリングポインタが残ります。
その後の画像行変換操作中に、ソフトウェアはこのダングリングポインタを逆参照します。
攻撃者が悪意のある PNG ファイル内の透明度チャンク値を完全に制御しているため、解放されたメモリブロックに書き戻されるデータに確定的に影響を与えることができます。
これにより、機密アプリケーションデータを漏らす可能性がある read-after-free 条件、および重大なヒープ破損を引き起こす write-after-free 条件が生じます。
特定の条件下、特に最新のメモリランダミゼーション(PIE/ASLR)がない組み込みシステムまたはレガシーサーバー上では、このメモリ破損は任意のコード実行を実証するために武器化されています。
この欠陥は libpng バージョン 1.2.1 から 1.6.55 に影響します。
2 番目の脆弱性は CVE-2026-33636 として指定され、CVSS スコアは 7.1 で、ARM/AArch64 Neon 最適化パレット展開ルーチンに位置する、範囲外読み取りおよび書き込みの欠陥です。
8 ビットのパレット化された行を標準色形式に拡張するとき、ハードウェア最適化ループは、十分な入力ピクセルが残っているかどうかを正確に検証せずに最終画像チャンクを処理します。
ループの最終イテレーションは、画像バッファの開始前にポインタを逆参照し、行バッファから負のオフセットで攻撃者の影響を受けたパレットデータを書き込み、直接ヒープ破損を引き起こします。
この バグについて任意のコード実行は証明されていませんが、これは確実にプロセスクラッシュを引き起こし、高い影響を与えるサービス拒否条件につながります。
また、デコードされたピクセル出力を通じて機密ヒープコンテンツを漏らす可能性がある、範囲外読み取りを可能にします。
この問題は、Neon 最適化が有効にコンパイルされた ARM/AArch64 環境に厳密に限定され、バージョン 1.6.36 から 1.6.55 に影響します。
組織は、メモリのライフタイムを正しく分離し、厳密なループ境界を強制する libpng バージョン 1.6.56 または 1.8.0 トランクリリースに緊急にアップグレードする必要があります。
翻訳元: https://cyberpress.org/png-vulnerabilities/