2022-05-25
Laravel の脆弱性 CVE-2022-30778
最近 GitHub リポジトリにセキュリティ SaaS の Snyk を導入したのですが、CVE ベースで検知される依存パッケージの脆弱性アラートにちょくちょく不発に近いものが紛れてます。
2022/05/16にオープンされた Laravel の CVE-2022-30778 もそのひとつで、内容としては POP Chain で任意コード実行が可能であるというものになります。
重大度 (Severity) は Critial で一見やばそうな感じですが、前提条件が「PHP の unserialize()
関数に対してユーザインプットをそのまま渡している」であることから、実際に影響のあるアプリケーションはごくごく限られるかと思います。
PHP のドキュメントに記載されている通り、そもそも unserialize() 関数にバリデーションチェック無しでユーザインプットを引数として渡してはいけません。
警告 allowed_classes の options の値にかかわらず、 ユーザーからの入力をそのまま unserialize() に渡してはいけません。 https://www.php.net/manual/ja/function.unserialize.php
というわけで Snyk のアラートきっかけにこのページに辿り着いた方は、Laravel アプリ内で unserialize()
関数にユーザインプットを渡していないかレビューを実施し、確認が取れたらそっと Ignore ボタンを押しておきましょう。なお Snyk では Ignore 押下時に備忘としてコメントを残しておくことも可能です!
参考
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30778
- https://github.com/1nhann/vulns/issues/1
- https://www.php.net/manual/ja/function.unserialize.php