【Laravel】Cookie を使ったセッションドライバーに関するセキュリティリリース

Laravel Cookie Security Releases – The Laravel Blog
Security Release: Laravel 6.18.29, 7.22.2 – The Laravel Blog
 Laravel のセッションドライバー設定を ‘cookie’ にしている場合の脆弱性を直すアップデートがリリースされました。アップデートがリリースされない Laravel 5.x 以前のバージョンはセッションドライバーを ‘cookie’ 以外にすることが推奨されます。

 脆弱性の内容はリモートコード実行で原文は以下の通りです。

Regarding the vulnerability, applications using the “cookie” session driver that were also exposing an encryption oracle via their application were vulnerable to remote code execution. An encryption oracle is a mechanism where arbitrary user input is encrypted and the encrypted string is later displayed or exposed to the user. This combination of scenarios lets the user generate valid Laravel signed encryption strings for any plain-text string, thus allowing them to craft Laravel session payloads when an application is using the “cookie” driver.

 Laravel のセッションドライバーに cookie を使っている場合、任意のセッション情報をクライアント側から作れたようです。アプリケーション内のセッション情報の使い方を知る必要もありそうですし、 Laravel デフォルトのセッションドライバーが files ということもあわさり大勢が惨事に見舞われているわけではなさそうです。
 主な修正点は src/Illuminate/Cookie/Middleware/EncryptCookies.php でこれの暗号化にハッシュが追加で用いられるようになりました。
improve cookie encryption (#33662) · laravel/framework@594a3ab
 変更に合わさって cookie を用いた他メソッドがしばらく壊れていましたが、おおよそ修正されました。
[7.22.0] withCookie test method broken · Issue #33664 · laravel/framework
[v7.22.0] Changes in EncryptCookies breaks with Passport · Issue #33665 · laravel/framework
[v7.22.0] Changes in EncryptCookies breaks assertCookie test · Issue #33671 · laravel/framework

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG