Telerik UIの欠陥、攻撃者がAES-CBCパディングオラクルを連鎖させ未認証RCEへ

セキュリティ研究者は、Progress Telerik UI for ASP.NET AJAXにおいて、未認証の攻撃者が暗号パディングオラクルを起点として、公開されているWebアプリケーション上でリモートコード実行にまで権限を昇格できる、重大な脆弱性チェーンを確認しました。

Microsoftセキュリティアップデート

この脆弱性はTanto Securityの研究者であるMarcio Almeida氏によって報告されたもので、Telerik UI for ASP.NET AJAXのバージョン2010.1.309から2026.2.519までが影響を受けます。この問題に対処するため、Progress Softwareはバージョン2026.2.708(2026 Q2 SP1とも呼ばれる)をリリースしています。

Telerik UIの欠陥

今回の攻撃は、Telerikの RadAsyncUpload コンポーネントに関連する4件の脆弱性、CVE-2026-13181CVE-2026-13182CVE-2026-13183CVE-2026-13184を悪用するものです。

最も重大な脆弱性は、暗号化されたアップロード設定データに影響を及ぼす、未認証のAES-CBCパディングオラクルです。

攻撃者は暗号化された入力を繰り返し改変し、サーバーの応答を観察することで、改変後の暗号文が有効なPKCS#7パディングを持つかどうかを判別できます。この手法により、暗号鍵を持たない状態でも、保護されたデータを1バイトずつ復号するのに十分な情報が漏えいしてしまいます。

AES-CBC暗号化そのものには、暗号文を認証する機能がありません。アプリケーションがメッセージ認証機構を用いて暗号化データブロックの整合性を検証していない場合、攻撃者は復号前にデータを改ざんできてしまいます。

サーバーが、不正な形式のパディングと、パディングは正しいもののそれ以外は無効なデータとで異なる反応を示す場合、それは事実上のオラクルとして機能します。Telerikの実装では、この差異はエラーメッセージを通じて確認できる場合があります。

ASP.NETのカスタムエラーが有効になっている場合でも、攻撃者は応答時間の違いからオラクルを特定できる可能性があります。ただし、この場合は攻撃がより低速かつ複雑になります。

研究者らは、このオラクルが暗号化された設定フィールドの平文を復元するだけでなく、特定の設定フィールドを偽造する目的にも利用できることを発見しました。Telerikは一部のRadAsyncUpload設定をUTF-16LEのJSONとして保存しています。

静的な初期化ベクトルにより攻撃者が最初の暗号化ブロックを制御する能力は制限されますが、研究者らはサーバーが発行した既存の暗号文を改変することで、この制限を回避することに成功しました。

彼らは、長いJSON文字列内で制御下に置いた「犠牲」ブロックの直後に偽造JSONデータを挿入し、ランダムに復号されるデータが無害なまま残るようにしました。

この手法により、攻撃者は`AllowedFileExtensions`設定など、セキュリティ上重要な設定値を上書きできるようになります。偽造された設定によって、脆弱なアップロードハンドラーが`.dll`ファイルを受け入れてしまう可能性があります。

さらに、攻撃者が脆弱なRadAsyncUploadコントロールをホストするページから正規の暗号化データを取得できれば、この手法により一時アップロードディレクトリなどのフィールドも操作可能です。

この脆弱性チェーンにおけるコード実行部分は、Telerikのアップロード処理における安全でない型の取り扱いに起因します。`AsyncUploadClientStateConverter`は`AsyncUploadTypeName`フィールドを含むメタデータを復号し、攻撃者が制御可能な型文字列を`Type.GetType()`に渡してしまいます。

脆弱性診断ツール

アプリケーションのサーバー側`FileUploaded`ハンドラーが`UploadResult`を読み取ると、Telerikは攻撃者が制御するJSONを結果として得られる.NET型へとデシリアライズします。CVE-2026-13181として特定されたこの挙動により、攻撃者はデシリアライゼーションガジェットを自由に選択できてしまいます。

研究者らは、`System.Configuration.Install.AssemblyInstaller`クラスの`Path`プロパティを設定することで、このクラスを悪用してディスク上の攻撃者制御下にあるアセンブリを読み込ませられることを実証しました。

Image

特別に細工されたmixed-modeのC++/CLI DLLは、通常のマネージドコードの実行が始まる前でも、`DllMain`を通じてロード時にネイティブコードを実行できます。

公開された概念実証(PoC)ペイロードには、IISのWebルートを特定してASPXコマンドシェルを書き込もうとするディスクベースのWebシェルに加え、永続的なファイルを作成せずにHTTPリクエストを傍受するインメモリ版も含まれています。

すべてのTelerik環境で悪用が可能なわけではありません。攻撃対象となるには、RadAsyncUploadを含むページを公開していること、特定の非デフォルトな`Telerik.AsyncUpload.ConfigurationEncryptionKey`を使用していること、そして`UploadResult`にアクセスするサーバー側の`FileUploaded`ハンドラーを備えていることが必要です。

とはいえ、これらの条件は、Telerikが推奨する暗号鍵の強化ガイダンスを実装済みのエンタープライズアプリケーションにおいて満たされている可能性があります。

Telerik UI for ASP.NET AJAXを利用している組織は、直ちにバージョン2026.2.708以降へアップグレードすることが強く推奨されます。あわせて、インターネットに公開されているRadAsyncUploadインスタンスの特定、アップロードイベントハンドラーの見直し、そして不審なアップロードメタデータや見慣れないDLLファイル、IISワーカープロセスの異常な挙動がないかの調査も行うべきです。

SOCを常に最新の状態に保ち、アクティブなマルウェアやフィッシングの発生から24時間以内に把握しましょう。 ANYRUNを試して早期検知でインシデントを防ぎましょう。 

翻訳元: https://gbhackers.com/telerik-ui-flaws-let-attackers-chain-aes-cbc-padding-oracle-to-unauthenticated-rce/

本記事は gbhackers.com の記事を翻訳・要約したものです。