CVE-2024-34346: Deno Vulnerability Allows Privilege Elevation
2024/05/08 SecurityOnline — セキュリティに特化したアーキテクチャで知られる、人気の JavaScript/TypeScript/WebAssembly ランタイムである Deno を使用している、開発者およびシステム管理者は、先日のアップデートで対処された、深刻な脆弱性に注意する必要がある。この脆弱性 CVE-2024-34346 (CVSS:8.5) は、特権ファイルの誤操作による権限昇格を可能にするため、重大なリスクをもたらす。

Deno とは?
JavaScript/TypeScript を、Web ブラウザの外で実行する際の、最先端のランタイムが Deno である。V8 Engine/Rust/Tokio といった技術をベースに構築された Deno は、そのデザインにより強化された、セキュリティ機能と開発者エクスペリエンスを提供する。そのデフォルト設定として、ホスト・システムへのアクセスを制限するセキュアなサンドボックス環境を提供され、不正操作の防止も目的としている。
脆弱性の詳細
今回の問題は、特に “–deny” フラグが指定されていない場合の、Deno によるファイル・パーミッションの処理方法にある。特定のシナリオでは、ファイル・システム全体への Read/Write を有効化したユーザーが、より高い特権を必要とするはずの、機密ファイルへのアクセス許可を不注意に与えてしまう可能性があるという。たとえば、”/proc/self/environ” を操作すると、”–allow-env” と同じ状態になり、環境変数へのアクセスを不用意に許可してしまう可能性が生じる。その一方で、”/proc/self/mem” を操作すると、”–allow-all” と同じ状態になり、大半のシステムに対する無制限のアクセスを許可する可能性が生じる。
この脆弱性 CVE-2024-34346 は、Unix の /etc, /dev, /proc, /sys および、Windowsの /etc, /dev, /proc, /sys などを含む、Unix/Windows プラットフォーム上のいくつかの重要なディレクトリに影響を及ぼす。
脆弱性の影響
Deno バージョン 1.43.0 以前を、”–allow-read” または “–allow-write”フラグ付きで実行しているユーザーは、スクリプトやアプリケーションに対して、意図した以上のアクセスを提供してしまう危険性がある。この見落としは、悪意のコードが検知されずに。システム内で特権をエスカレートさせる、潜在的な悪用につながる可能性を生じる。
解決策と緩和策
Deno チームは、バージョン 1.43.1 をリリースすることで、この脆弱性に迅速に対応した。このパッチが適用されたバージョンでは、上記の機密ディレクトリの Read/Write において、明示的な “–allow-all” アクセスが必要となる。このアップデートにより、ファイルアクセス・パーミッションのより厳格な制御が実施されるため、リスクが大幅に軽減される。
なお、直ちに更新できないユーザーに対しては、”-deny-read=/dev” および “–deny-write=/proc” などのフラグを用いて、重要なファイルへのアクセスを明示的に拒否するための回避策が、Deno により提供されている。これらの対策は、セキュリティ・サンドボックスの完全性を維持するために不可欠であり、特にシンボリック・リンク解決が、それらの制限を迂回する可能性がある、Deno の古いバージョンで必須となる。
Web ブラウザ以外で、JavaScript/TypeScript/WebAssembly などを実行する際に用いられる、人気のランタイムが Deno であるとのことです。そんな Deno に、脆弱性 CVE-2024-34346 (CVSS:8.5) が発生し、特権ファイルの誤操作による権限昇格にいたるとのことです。ご利用のチームは、ご注意ください。よろしければ、Wikipedia も、ご利用ください。
You must be logged in to post a comment.