ImageMagick は、画像の拡大縮小、切り取り、透かし、フォーマット変換などの画像処理のために広く使用されている画像処理プログラムです。ユーザーが縦棒を含むファイル名を渡すと、コマンド インジェクションの脆弱性が引き起こされる可能性があることがわかりました。
テスト: ImageMagick-7.0.1-2.tar.bz2
ImageMagick はファイル名を処理していますOpenBlob() 関数が呼び出されます。OpenBlob() 関数では、ファイル名が垂直バーで始まるかどうかを判断し、そうであれば、popoen_utf8() 関数を呼び出します。コードは図に示すとおりです:
popoen_utf8() 関数では、popen_utf8() 関数を呼び出してファイルを開きます。コードは次の図に示すようになります:
PHP がシステム コマンド関数の実行を無効にする場合、これを使用して disable_funtion をバイパスできます。PHP は次のコードを記述します:
<?phpnew Imagick('|touch /tmp/niubl');?>
PHP を使用して実行すると、結果は以下のようになります:
現在、公式コードは Gitlab に更新されていますが、最終的な修復バージョンはまだリリースされていません。パッチの詳細については、次のリンクを参照してください。
2016.05.07 Chuangyu 404 Security Laboratory niubl がこの脆弱性を発見したことを知る
2016.05.29 外国の研究者が脆弱性の詳細を報告および公開 http: //permalink.gmane.org/gmane.comp.security.oss.general/19669
2016.05.30 分析レポートを公開