Critical ImageMagick Vulnerability Allows Remote Code Execution
2025/09/01 gbhackers — 広く使用されるオープンソース画像処理ソフトウェア ImageMagick に、深刻な脆弱性 CVE-2025-57803 (CVSS 3.1:9.8) が発見された。この脆弱性を悪用する攻撃者は、リモートからのコード実行を可能にするという。なお、この脆弱性の影響を受けるのは、ImageMagick 32-Bit 版のバージョン 7.1.2-2/6.9.13-28 未満である。

脆弱性の詳細
この脆弱性は、ImageMagick の BMP (ビットマップ) エンコーダ、具体的には WriteBMPImage 関数における 32ビット整数オーバーフローに起因する。
| Item | Details |
| CVE ID | CVE-2025-57803 |
| Vulnerability | 32-bit integer overflow in BMP encoder (WriteBMPImage) leading to heap buffer overflow |
| Affected Versions | ImageMagick < 7.1.2-2 (7.x branch) ImageMagick < 6.9.13-28 (6.x branch) |
| Patched Versions | 7.1.2-2 6.9.13-28 |
| Severity (CVSS v3.1) | 9.8 (Critical) |
この脆弱性は、画像を BMP 形式に変換する処理で用いられる、スキャンライン・ストライド計算における数学的なオーバーフローに起因する。それにより、”bytes_per_line” の値は極端に小さくなる一方で、画像書き込み機能は行ごとに想定されたデータ量を出力し続ける。
ImageMagick と .NET ライブラリ Magick.NET のメンテナーを兼任する Dirk Lemstra が、この問題に対処するセキュリティ・アドバイザリ GHSA-mxvv-97wh-cfmm を公開している。
この脆弱性は、Web アプリ/サービスで使用される自動変換パイプラインにおいて、攻撃者に悪用を許す、典型的なヒープ破損プリミティブを形成する。
特に、32-Bit システム上において、幅が 178,956,969 Pixel を超える画像を処理する場合に、この問題が発生する。このケースでは、整数オーバーフローにより “bytes_per_line” の値は僅か 688 Byte になるが、実際の行単位データでは 536,000,000 Byte 以上が必要とされる。この不一致により、ヒープバッファ・オーバーフローが発生し、割り当てメモリ境界を超える領域への、攻撃者による制御データの書き込みを許すことになる。
この攻撃ベクターは、認証やユーザー操作を必要とせず、ネットワーク経由でアクセス可能な画像変換サービスを通じた実行を許すため、その影響が懸念される。さらに、多くの Web アプリやクラウド・サービスが、アップロード画像の自動処理を採用し、BMP などの複数のフォーマットへの変換を行うため、このエクスプロイトに対して脆弱である。
その一方で、32-Bit 版 ImageMagick は攻撃に脆弱であるが、64-Bit 版システムはアドレス空間演算の大きさにより、この整数オーバーフローの影響から保護される。ただし、メンテナーが追加の安全策として推奨するのは、すべてのシステムへのパッチ適用である。
この脆弱性は、画像アップロードとサーバ側自動処理という、一般的なワークフローを通じて悪用されるものだ。BMP 変換時にオーバーフローを引き起こす画像を作成する攻撃者は、以下の問題を引き起こす可能性を手にする。
- ヒープ操作によるリモート・コード実行
- サービス拒否攻撃 (アプリケーション・クラッシュ)
- システム整合性を損なうメモリ破損
早急な対応が必要
ImageMagick ユーザーに対して強く推奨されるのは、以下のパッチ適用済みバージョンへと、速やかにアップデートすることだ。
- 7.x ブランチ:バージョン 7.1.2-2 以降
- 6.x ブランチ:バージョン 6.9.13-28 以降
これらのパッチは、ストライド計算に算術ガードを導入して整数オーバーフローを防ぐという、安全性のための不変条件を強化している。修正内容には、ストライド計算前の幅/ピクセルビット数の検証などが取り込まれ、行データがバッファ境界を超えないことを保証している。
推奨される追加対策は、以下の通りである。
- 画像処理パイプラインの定期的なセキュリティ監査
- ライブラリ更新以外の多層防御策の実装
- 異常な画像処理リクエストの監視
ImageMagick を利用する組織にとって必要なことは、優先的なアップデート適用/画像処理ワークフローの確認に加えて、適切な入力検証とリソース制限の実施となる。
この脆弱性が示すのは、無害に見える画像変換処理であっても、信頼できないコンテンツを扱う場合には、深刻な攻撃ベクターが生じるという可能性である。
システム管理者に求められるのは、ImageMagick のインストール環境のアーキテクチャと更新手順の確認である。また、レガシー環境やコンテナ環境で、32-Bit 版が使用されている可能性も精査すべきである。
ImageMagick に、新たな脆弱性 CVE-2025-57803 が発見されました。原因は、BMP 形式に変換する処理を担う、WriteBMPImage 関数における整数オーバーフローです。大きな画像幅を扱う際に、計算値が極端に小さくなってしまい、その結果としてヒープバッファ・オーバーフローが発生します。64-Bit 版では問題は起き難いようですが、レガシー環境やコンテナ環境で 32-Bit 版が使用されている場合には、その影響が懸念されると、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、ImageMagick で検索も、ご参照ください。
You must be logged in to post a comment.