Composer 2.11.0 は、インストールと再インストールのとき vendor/composer/installed.json のパッケージ名が vendor ディレクトリの外へ出る問題を塞ぐ(GHSA-c968-33g3-wh7p)。リポジトリ設定に直書きした HTTP ヘッダ(API トークンを含む)は、composer.lock と installed.json へ書かない(GHSA-fm2w-xgf2-f9fh)。
同じ版の修正:
- システムの CA がルートを信頼していても、侵害された eMudhra の中間証明書を出す TLS は拒否する
- パッケージが制御する bin パスと shebang はエスケープせず bin プロキシへ埋め込まない。シェルのメタ文字を含む bin パスは拒否する
secure-httpが、厳密には不正な URL と git の::構文も拒否する- リポジトリのホスト名で始まるだけの別ホストの dist URL へ、カスタム HTTP ヘッダを送らない
2.10 で非推奨になった、dist の取得失敗時に source チェックアウトへ落ちる挙動は消える。一時的な source-fallback も削除。source から入れるときは preferred-install か --prefer-source。
config.policy を定義しているプロジェクトは、2.11.0 へ上げたあと lock が古いという警告が出る。lock を更新するまで残る。
cooldown は config.policy.cooldown.period。既定では無効。composer update と require が対象で、composer install は lock どおりに入る。期間中のセキュリティ修正も止まる。すぐ入れるときは composer update --no-cooldown vendor/package。アドバイザリとマルウェアのブロックは残る。
更新は composer self-update。