メインコンテンツにスキップ
ブログセキュリティLinodeセキュリティ・ダイジェスト 2022年10月16日~23日

Linode セキュリティダイジェスト 2022 年 10 月 16 日~23 日

Linode セキュリティダイジェスト

今週のダイジェストでは、以下をご紹介します。

  • LinodeTerraform (TF) Provider Deterministic Password Creation (決定論的パスワード作成)
  • Apache コモンズテキストのリモートコード実行(RCE)
  • Vm2 のサンドボックスから RCE へのエスケープ

LinodeTerraform Provider 非シード型決定論的パスワードを作成する 

TerraformLinode Terraform Provider は、Linode インスタンスのプロビジョニングを自動化するために設計されたプラグインです。Terraform は、サーバ上のソフトウェアを管理する代わりに、サーバの作成、変更、破壊に焦点を当てた IaC ツールです。 

この脆弱性は、Terraform プラグイン バージョン v1.29.3 で作成された Linode に影響します。Terraform プロバイダでは、Linode が root パスワードを提供せずに作成された場合、TF プロバイダはランダムに生成されたパスワードを使用します。このプラグインのバージョンは、パスワード生成機能の変更により、決定論的なパスワードを生成するようになったようです。この脆弱なコンポーネントは、ランダムパスワードの生成に crypto/rand の代わりに math/randGo パッケージを使用することに関係しています。さらに、math/rand パッケージはシードされていませんでした。 

今後のデプロイを保護するために、LinodeTerraform Provider ツールを最新版 (現在 v1.29.4) にアップグレードしてください。すぐにアップグレードできない場合は、影響を受けるプラグインを通してデプロイされたインスタンスのルートパスワードを変更することも可能です。

さらにサポートが必要な場合、または質問がある場合は、support@linode.com までご連絡ください。

Apache コモンズテキストのリモートコード実行(RCE)

Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded. The standard format for interpolation is “${prefix:name}”, where “prefix” is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation.

CVE-2022-42889は、Apache Commons Text バージョン 1.5 から 1.9 に存在するリモートコード実行で、デフォルトの Lookup インスタンスのセット (StringSubstitutor クラス) に任意のコード実行やリモートサーバーとの接触の原因となるインターポレーターが含まれています。脆弱性のある Lookup は以下の通りです。

  • "script" - JVMスクリプト実行エンジン(javax.script)を使用して式を実行します。
  • 「dns" - DNSレコードを解決します。 
  • "url" - URLから値を読み込む

また、リモートサーバーアプリケーションで、信頼できない設定値を使用した場合、リモートでコードが実行されたり、リモートサーバーと意図せず接触してしまう可能性があります。 

このライブラリがインストールされているかどうかを調べるには、`find / -type f -name 'commons-text*.jar'` を実行すれば、commons-text というプレフィックスを持つすべての .jar ファイルが得られます。 

この修正は、Apache Commons Text 1.10.0から利用可能です。この修正により、dns,url,script lookup インターポレータがデフォルトで無効になります。また、信頼できないデータを受け取ったり処理したりする場所での入力をサニタイズするなどの回避策を適用することも可能です。 

Vm2 のサンドボックスから RCE へのエスケープ

vm2 は広く使われている npm パッケージで、allowlisted Node の組み込みモジュールで信頼されないコードを実行できるサンドボックスとして機能します。このパッケージは月間1600万回以上ダウンロードされている非常に人気のあるパッケージで、vm2パッケージをインストールしたアプリケーションに対して活用する価値のある脆弱性となっています。 

CVE-2022-36067は、vm2 のサンドボックスライブラリに存在するリモートコード実行の脆弱性で、ユーザーが vm2 のサンドボックスを脱出し、サンドボックスを実行しているホストにアクセスすることが可能です。この脆弱性は、現在バージョン 3.9.10 以降に影響します。 

本脆弱性は、アプリケーションで発生したエラーのコールスタックを開発者がカスタマイズできる機能であるprepareStackTraceメソッドを使用することに関係しています。prepareStackTraceメソッドは、Errorオブジェクトを生成する "error "コンストラクタです。エラーが発生し、スローされたエラーオブジェクトの「stack」プロパティにアクセスすると、Node.js 、引数として「CallSite」オブジェクトの配列と一緒にエラーの文字列表現を提供しながら、このメソッドを呼び出すことになる。 

研究者は、まず、グローバルな Error オブジェクトを独自のオブジェクトでオーバーライドすることから始めました。この新しいオブジェクトにより、攻撃者は、サンドボックス化されていない「getThis」と呼ばれる関数を活用するために、prepareStackTrace関数を使用することができます。この関数は、スタックフレーム内の「this」オブジェクトを返すために使用される関数です。このスタックフレームオブジェクトは、サンドボックス化されていないオブジェクトであり、サンドボックスを抜け出し、コードが実行されているホスト上でコードを実行する関数を実行させることができる可能性があります。 

この修正はvm2 3.9.11から利用可能です。 

コメント 

コメントを残す

あなたのメールアドレスは公開されません。必須項目には*印がついています。