web-dev-qa-db-ja.com

最新のImageMagickの脆弱性を防ぐ方法は?

CVE-2016–3714 によると、ImageMagickプログラム(4パッケージ)にいくつかの脆弱性があります:

デリゲートのコマンドに渡されたファイル名のフィルタリングが不十分なため、いくつかのファイル形式の変換中にリモートでコードが実行される

imagemagickパッケージに依存する他のプログラムとコマンドラインがあります(例 here )。 ImageMagickプログラムを実行することにより、画像ファイルは悪意のあるコードを受け取ることができます。

パッチが利用可能になるまでImageMagickの脆弱性を検証、保護、防止するために推奨される手順は何ですか?

3
GAD3R

あなたがリンクしたページによると、 回避策 があります。

以下をpolicy.xmlに追加します。

<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />

このファイルは/etc/ImageMagick/にあります。

これにより、ImageMagickコーダーモジュールが上記のアクセスモジュールを利用することが防止されます。これらのモジュールは現在、コマンドインジェクションの問題に対して脆弱です。

oss-security thread には、バグに関するドキュメント化されたPoCがいくつかあります。これは、回避策を適用した後もバグがまだ存在するかどうかを確認するためのチェックとして使用できます。

次に例をいくつか示します。

exploit.mvg

Push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg"|ls "-la)'
pop graphic-context

exploit.svg

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="640px" height="480px" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink=
"http://www.w3.org/1999/xlink">
<image xlink:href="https://example.com/image.jpg&quot;|ls &quot;-la"
x="0" y="0" height="640px" width="480px"/>
</svg>

これらに対して単にconvertを実行すると、ls -laが実行され、脆弱性が存在する場合、その出力がコンソールに表示されます。

4
Polynomial

これはあなたのためのリファレンスです: https://imagetragick.com

そのページによると、処理しているファイルのマジックバイトを確認し、ポリシーファイルを使用して脆弱なImageMagickコーダーを無効にする必要があります。

このサイトでは、サンプルのグローバルポリシーを提供しています。ただし、1つのサイズですべてに適合するわけではありません。出発点として使用できます。

2