Laravel admin package Voyager vulnerable to one-click RCE flaw

Laravelアプリケーションを管理するためのオープンソースのPHPパッケージVoyagerに発見された3つの脆弱性は、リモートコード実行攻撃に使用される可能性があります。

これらの問題は未修正のままであり、悪意のあるリンクをクリックした認証済みのVoyagerユーザーに対して悪用される可能性がある。

コード品質とセキュリティの会社であるSonarSourceの脆弱性研究者によると、Voyagerのメンテナに欠陥を報告しようとしたが、同社の脆弱性開示ポリシーに従って提供される90日間の期限内に返答がなかったという。

脆弱性の詳細

SonarQube Cloudチームは、定期的なスキャン中にVoyagerの最初の脆弱性である任意のファイル書き込みを発見した。このプロジェクトを詳しく調査したところ、到達可能なVoyagerインスタンスに対してワンクリックでリモート・コード実行攻撃を実行するために組み合わされる可能性のある追加のセキュリティ問題を発見した。

3つの欠陥の概要は以下の通り:

  • CVE-2024-55417– Voyagerのメディアアップロード機能により、攻撃者はMIMEタイプの検証をバイパスして悪意のあるファイルをアップロードすることができます。画像やビデオのように見えるが、実行可能な PHP コードを含むポリグロットファイルを作成することで、攻撃者は、ファイルがサーバ上で処理された場合にリモートでコードを実行することができます。
  • Turbolinux 11 Server, Turbolinux 11 Serverx64Edition の場合] アップデートは、ディスクトップメニュー「パネルの左端のメニュー」をクリックし Turbo プラス を起動し行って下さい。認証された管理者が悪意のあるリンクをクリックすると、スクリプトがブラウザで実行され、攻撃者がリモートコード実行へのエスカレーションを含む、管理者に代わってアクションを実行できる可能性があります。
  • CVE-2024-55415– ファイル管理システムの欠陥により、攻撃者はファイルパスを操作し、 サーバ上の任意のファイルを削除したりアクセスしたりすることができます。これを悪用することで、攻撃者はサービスを停止させたり、重要なファイルを消去したり、機密情報を抜き取ったりすることができます。

SonarQube Cloudの研究者によると、2024年9月11日以降、電子メールやGitHubを通じてVoyagerのメンテナに3つの問題を報告したが、何の連絡もなかったという。

90日間の公開期間中、彼らは何度も返答を得ようとし、公開日が近づいていることを知らせた。

研究者によれば、11月28日にGitHub経由でセキュリティ・レポートも公開し、90日間の公開期間が満了し、技術的な詳細を公開しようとしていることをVoyagerのメンテナに通知したという。

影響と推奨事項

Voyagerは主に、アプリケーションを管理するために事前構築された管理パネルを必要とするLaravel開発者によって使用されている。

典型的なユーザーは、ウェブ開発会社、新興企業、フリーランス開発者、Laravel趣味者、そして一般的には、社内ツールやCMSベースのアプリケーションにLaravelを使用している中小企業です。

Voyagerプロジェクトは、GitHubで2,700回フォークされ、11,800以上のスターを獲得し、数百万ダウンロードを数えるなど、非常に人気がある。

SonarQubeが発見した3つの欠陥が未パッチのままであることを考えると、Voyagerユーザーは、アクセスを信頼できるユーザーのみに制限し、不正なファイルアップロードを防ぐために「browse_media」パーミッションを制限し、ロールベースのアクセス制御(RBAC)を使用して露出を最小限に抑えることを検討する必要がある。

サーバーレベルのセキュリティ対策としては、PHPファイルの実行を無効にすること、厳格なMIMEタイプ検証を使用してポリグロットのファイルを拒否すること、定期的にログを監視して異常なファイルのアップロードやアクセスのアクティビティを確認することなどが挙げられる。

セキュリティが重要な場合は、公式パッチが出るまで本番環境でのVoyagerの使用を避けるか、他のLaravel管理パネルへの移行を検討してください。