„`html
Zusammenfassung
Eine kritische Sicherheitslücke in Config::IniFiles für Perl (Versionen vor 3.001000) ermöglicht OS-Command-Injection und Dateiüberschreibung. Die Schwachstelle liegt in der Funktion _make_filehandle(), welche Dateinamen unsicher mit Perls 2-Argument-open()-Funktion verarbeitet. Durch spezielle Zeichen in Dateinamensargumenten können Angreifer beliebige Befehle ausführen oder Dateien manipulieren.
Betroffene Systeme
- Config::IniFiles Perl-Module Version < 3.001000
- Alle Systeme, die diese Bibliothek nutzen und untrusted Input verarbeiten
- Webapplikationen und Skripte mit Benutzereingaben über den -file Parameter
Technische Details
Die Schwachstelle entsteht durch unsichere Verarbeitung des -file-Arguments in der _make_filehandle()-Funktion. Perl’s 2-Argument-open()-Funktion interpretiert Sonderzeichen als Steuerzeichen:
| cmdodercmd |– Pipes führen Befehle aus> pathoder>> path– Redirects überschreiben/erstellen Dateien
Der Angriffspfad verläuft über den dokumentierten Parameter: new(-file => $thing), welcher durch ReadConfig() erreicht wird. Skalare Referenzen (-file => \$text) sind nicht betroffen, da diese direkt als In-Memory-Daten behandelt werden.
Empfohlene Massnahmen
- Sofortig: Upgrade auf Config::IniFiles Version 3.001000 oder höher durchführen
- Validierung: Alle untrusted Eingaben vor Übergabe an
-fileParameter validieren - Input-Sanitizing: Dateinamen auf Sonderzeichen prüfen und filtern
- Least Privilege: Perl-Prozesse mit minimalen Berechtigungen ausführen
- Monitoring: Unerwartete Prozessaktivitäten und Dateizugriffe überwachen
Bewertung
CVSS Score: 8.6 (High)
Die Schwachstelle ermöglicht lokale Privileg-Eskalation und Dateimanipulation. Besonders kritisch bei webbasierten Anwendungen, die Konfigurationsdateien dynamisch laden.
„`