Telerik の脆弱性 CVE-2026-13181/13182/13183/13184 が FIX:AES-CBC パディング・オラクルの恐れ

Telerik UI Flaws Let Attackers Chain AES-CBC Padding Oracle to Unauthenticated RCE

2026/09/07 gbhackers — Progress Telerik UI for ASP.NET AJAX の重大な脆弱性チェーンを、Tanto Security の研究者 Marcio Almeida が発見した。この脆弱性チェーンを悪用すると、未認証の攻撃者が、暗号学的パディング・オラクルを起点として、外部に公開された Web アプリケーション上でのリモート・コード実行 (RCE) へと攻撃を発展させる可能性がある。Marcio Almeida が報告した脆弱性は、Telerik UI for ASP.NET AJAX 2010.1.309~2026.2.519 に影響を及ぼす。これに対して Progress Software は、2026 Q2 SP1 とも呼ばれるバージョン 2026.2.708 をリリースして対処している。

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 として保存している。固定の初期化ベクター (IV) により、攻撃者が最初の暗号化ブロックを制御する能力は制限されるが、サーバが発行した既存の暗号文を変更することで、研究者はこの制限を回避した。

研究者は、長い JSON 文字列内に制御可能な「犠牲ブロック」を配置し、その後に偽造した JSON データを挿入することで、意図しないデータが復号されても後続の処理に影響しない状態にできた。この手法により攻撃者は、AllowedFileExtensions などのセキュリティ上重要な設定値の改竄が可能となる。こうして偽造された設定により、脆弱なアップロード処理が .dll ファイルを受け入れる可能性がある。

さらに、脆弱な RadAsyncUpload コントロールを配置したページから、正規の暗号化データを取得できる攻撃者は、この手法により一時アップロード・ディレクトリなどのフィールドを変更できる。この設定の改竄を足掛かりとして、コード実行へ発展させることが可能である。

この脆弱性チェーンにおけるコード実行は、Telerik のアップロード処理に存在する安全でない型処理に起因する。AsyncUploadClientStateConverter が AsyncUploadTypeName フィールドを含むメタデータを復号して、攻撃者が制御する型名の文字列を Type.GetType() へ渡すことで、アプリケーションのサーバ側 FileUploaded ハンドラが UploadResult を読み取った際に、攻撃者が制御する JSON を攻撃者の指定した .NET 型へデシリアライズさせる。

CVE-2026-13181 として特定された、この動作を悪用する攻撃者は、デシリアライズ時に利用するガジェットを選択できる。

研究者が実証したのは、System.Configuration.Install.AssemblyInstaller クラスの Path プロパティを設定することで、このクラスを悪用して攻撃者が制御するアセンブリをディスクから読み込ませる手法である。特別に細工された Mixed-Mode C++/CLI DLL は、マネージド・コードの実行が始まる前でも、読み込み時に DllMain を介してネイティブ・コードを実行できる。

a request actually reach the code inside that one DLL (Source: TantoSec)
a request actually reach the code inside that one DLL (Source: TantoSec)

公開された概念実証 (PoC) のペイロードには、IIS の Web ルートを特定して ASPX コマンド・シェルの書き込みを試みるディスク上の Web Shell に加え、永続的なファイルを作成せずに HTTP リクエストを捕捉するメモリ上で動作する亜種が含まれている。

ただし、すべての Telerik 導入環境で悪用が可能なわけではなく、脆弱な標的には、RadAsyncUpload を含むページが外部公開されていること/デフォルトとは異なる特定の Telerik.AsyncUpload.ConfigurationEncryptionKey が使用されていること/UploadResult へアクセスするサーバ側の FileUploaded ハンドラが存在すること、という条件がある。これらの条件を満たす環境は、Telerik が推奨する暗号化キーの強化ガイダンスを実装した企業向けアプリケーションにも存在する可能性がある。

Telerik UI for ASP.NET AJAX を使用する組織には、バージョン 2026.2.708 以降へ直ちにアップグレードすることが推奨される。さらに、インターネットに公開された RadAsyncUpload インスタンスを特定し、アップロード・イベント・ハンドラを確認した上で、不審なアップロード・メタデータや異常な DLL ファイル、IIS ワーカー・プロセスの予期しない動作の調査も必要となる。