CVE/ImageMagick

AppImage は Linux の実行ファイルの方式で、ImageMagick の magick コマンドだけ Linux にコピーすれば使えるもの。

環境変数の MAGICK_CONFIGURE_PATH で設定ファイルの場所を。LD_LIBRARY_PATH で共有ライブラリの場所を指定するが、これらが空の場合にカレントディレクトリのそれらを読んでしまう不具合。そもそもカレントに任意のファイルをおかれる環境そのものが危険なので、脆弱性としては微妙なレベル。共有サーバで他の人の home 以下で作業すると危険なのでレンタル共有サーバとか?

  • https://www.cve.org/CVERecord?id=CVE-2024-41817

    The `AppImage` version `ImageMagick` might use an empty path when setting `MAGICK_CONFIGURE_PATH` and `LD_LIBRARY_PATH` environment variables while executing, which might lead to arbitrary code execution by loading malicious configuration files or shared libraries in the current working directory while executing `ImageMagick`. The vulnerability is fixed in 7.11-36.

    `AppImage` バージョンの `ImageMagick` は、実行中に `MAGICK_CONFIGURE_PATH` および `LD_LIBRARY_PATH` 環境変数を設定するときに空のパスを使用することがあります。これにより、`ImageMagick` の実行中に現在の作業ディレクトリに悪意のある構成ファイルまたは共有ライブラリが読み込まれ、任意のコードが実行される可能性があります。この脆弱性は 7.11-36 で修正されています。

公式

記事

疑問

LD_LIBRARY_PATH の挙動はそもそも UNIX の仕様なのでは?

Windows ではカレント dll 読むけど UNIX では LD_LIBRARY_PATH で . を明示的に指定しないと読まなかったような気も。 ImageMagick 的に特別な事してたっけ?といった疑問があるので、あとで修正 diff みとこう

関連

AppImage