人気のあるThymeleaf Javaテンプレートエンジンで重大なサンドボックスバイパスが修正

CVSS 9.1の脆弱性により、攻撃者はJava SpringエコシステムのデファクトテンプレートエンジンのRCE保護を迂回することができます。

Javaウェブアプリケーション向けの広く使用されているテンプレートエンジンであるThymeleafのメンテナーは、認証されていない攻撃者がサーバー上で悪意のあるコードを実行できる珍しい重大な脆弱性を修正しました。

CVE-2026-40478として追跡されている脆弱性はCVSS重大度スケールで9.1と評価されており、サーバー側テンプレートインジェクション(SSTI)の問題として説明されています。Thymeleafはユーザー入力が危険な式を実行するのを防ぐサンドボックスのような保護を持っていますが、この欠陥により攻撃者がこれらの保護を迂回することができます。

「このライブラリは式インジェクションを防ぐメカニズムを提供していますが、権限のない式を実行できる特定の構文パターンを適切に無効化できていません」と開発者は彼らのアドバイザリで述べています。「アプリケーション開発者が検証されていないユーザー入力をテンプレートエンジンに直接渡す場合、認証されていないリモート攻撃者はライブラリの保護をバイパスしてサーバー側テンプレートインジェクション(SSTI)を達成できます。」

ThymeleafはJava Springエコシステムのデファクトテンプレートエンジンであり、SpringはJavaでウェブアプリケーションを開発するための最も人気のあるフレームワークです。Javaはエンタープライズ環境での開発でまだ広く使用されているため、この脆弱性は多くのビジネスアプリケーションに影響を与える可能性があります。

3.1.4.RELEASE前のすべてのThymeleafバージョンが影響を受けており、回避策は存在しません。企業はThymeleafを使用しているアプリケーションを特定し、できるだけ早く3.1.4.RELEASEにアップグレードすることをお勧めします。

直接的なエクスプロイト

アプリケーションセキュリティテスト企業Endor Labsの研究者によると、エクスプロイトは直接的であり、特別な権限または条件は必要ありません。攻撃者はThymeleafの式エンジンに到達する入力を制御するだけで済み、これはウェブアプリケーションにおける一般的なパターンです。

Endor Labsは彼らのレポートで、Thymeleafが危険な式をブロックするための多層防御を持っており、この場合その2つが失敗したと述べています。例えば、文字列チェックは式テキストで危険なパターンをスキャンしていました。newキーワードの後のASCIIスペース、T(Spring Expression Language型参照)、@(一部のコードパスのSpEL Bean参照)などです。しかし、チェックはASCIIスペース0x20文字のみを探していました。しかし、SpELのパーサーはnewとクラス名の間でタブ(0x09)、改行(0x0A)、およびその他の制御文字も受け付けます。

別のポリシーはjava.*で始まるクラスがT() 型参照内で使用されるのをブロックしていましたが、org.springframework.*ognl.*、またはjavax.*からの型はブロックしていませんでした。

「一般的なSpringアプリケーションがクラスパス上にspring-coreを持っているため、org.springframework.core.io.FileSystemResourceなどのクラスは自由に構築可能でした。そのクラスはディスク上に任意のファイルを作成できます」と研究者は述べました。

したがって、Endor Labsは2つを組み合わせることで概念実証エクスプロイトを簡単に構築できました。newの後にタブ文字を使用し、org.springframework.core.io.FileSystemResourceクラスを呼び出してディスク上にファイルを作成します。

「適切なクラスを使用すれば、攻撃者はファイル作成から完全なリモートコード実行にエスカレートできます。例えば、サードパーティライブラリからProcessBuilderラッパーをインスタンス化したり、Springの独自のGenericApplicationContextを活用して任意のBeansを登録して呼び出したりできます」と研究者は説明しました。

Java Springフレームワーク自体の脆弱性は過去にウェブサーバーを侵害するために悪用されています。したがって、このような簡単にエクスプロイト可能な欠陥が攻撃者によって迅速に採用される可能性があります。

翻訳元: https://www.csoonline.com/article/4160520/critical-sandbox-bypass-fixed-in-popular-thymeleaf-java-template-engine.html

ソース: csoonline.com