Twig の脆弱性 CVE-2024-45411 が FIX:データ漏洩などが生じる恐れ

CVE-2024-45411: Twig Sandbox Bypass Vulnerability Puts PHP Applications at Risk

2024/09/10 SecurityOnline — 広く使用されている PHP テンプレート・エンジン Twig に、深刻なセキュリティ脆弱性 CVE-2024-45411 (CVSS:8.5) が発見された。この脆弱性の悪用に成功した攻撃者は、サンドボックスの制限を回避し、悪意のコード実行を可能にする。テンプレート・レンダリングにおいて、Twig を使用している Web アプリケーションにとっては、深刻な影響が生じる可能性がある。

この問題のセキュリティ上の脆弱性は、ユーザーが生成するテンプレートに対して、セキュリティ・チェックを実行する機能である、Twig のサンドボックスに起因する。特定の条件下において、これらのサンドボックス・チェックが実行されないケースが生じるため、通常は設定されているはずの制限を、攻撃者が回避する可能性が生じる。この抜け穴が発生する条件について、下記のようにGitHub で詳述されている

  • サンドボックスが、グローバルに無効化されている。
  • サンドボックス化された include() 関数を介して、新たなサンドボックスが有効化され、Template または TemplateWrapper インスタンスを使用せずに、名前 (included.twig など) でテンプレートを参照している。
  • グローバルなサンドボックスが無効化されているため、サンドボックス以外のコンテキストで、インクルードされたテンプレートが事前に読み込まれている。

これらの条件がすべて満たされると、この脆弱性を悪用する攻撃者による、悪意のコードの注入やテンプレートの制限の回避が可能となり、不正アクセス/データの漏えいなどが引き起こされ、基盤となる PHP アプリケーションのさらなる悪用につながる可能性がある。

脆弱性 CVE-2024-45411 は、以下を含む幅広いバージョンの Twig に影響を与える。

  • 1.0.0〜1.44.7
  • 2.0.0〜2.16.0
  • 3.0.0〜3.13.0

開発者および管理者に強く推奨されるのは、最新のパッチ適用済みバージョンで、Twig を更新することである。

  • 1.44.8
  • 2.16.1
  • 3.14.0

このパッチは、サンドボックスのセキュリティ・チェックが、確実に実行されるようにすることで、以前では問題となっていた状況下でも、脆弱性は対処されている。

この脆弱性の深刻さを考慮すると、Twig を使用している全ての PHP アプリケーションを、パッチが適用されたバージョンに、速やかに更新する必要がある。この作業を先延ばしにすると、アプリケーションは攻撃に直面し続けることになり、データ漏洩/サービスの中断に加えて、その他のセキュリティ侵害などの可能性が生じる。