Schwachstellen in Webmin

In der Anwendung Webmin sind mehrere Sicherheitslücken entdeckt worden. Über diese ist ein entfernter angemeldeter Angreifer in der Lage, Befehle mit höheren Berechtigungen auszuführen.

Zudem ist ein entfernter Angreifer in der Lage, Dateien mit Root-Rechten einzusehen.

Verantwortlich hierfür sind drei verschiedene Programmierfehler. Bei der ersten Schwachstelle (CVE-2012-2981) handelt es sich um einen Eingabekontrollfehler. Ein Angreifer kann spezielle Daten an Webmin senden, die dazu führen, dass beliebige Perl-Befehle zur Ausführung kommen. Der Fehler wurde an zwei Stellen im Code korrigiert, wobei an geeigneter Stelle einfach

$type = $in{'type'};

durch

$in{'type'} =~ /^[a-zA-Z0-9\_\-\.]+$/ || &error($text{'mon_etype'});

ersetzt wurde. Das Pattern-Matching verhindert hier die Attacke, indem es gefährliche Benutzerdaten herausfiltert.

Der zweite Programmierfehler (CVE-2012-2982) findet sich im Skript “file/show.cgi”. Es erlaubt einem Angreifer ebenfalls, Befehle auszuführen. Das Patch hierfür ist auch einfach: Der Datei “file/show.cgi” wird einfach die folgenden Zeile hinzugefügt:

$p = $ENV{'PATH_INFO'};
($p =~ /^\s*\|/ || $p =~ /\|\s*$/ || $p =~ /\0/) && &error_exit($text{'view_epathinfo'});

Auch hier hilft Pattern-Filtern gegen die Attacke.

Die dritte Schwachstelle (CVE-2012-2983) befindet sich in “edit_html.cgi” und hat zur Folge, dass ein entfernter Angreifer Dateien mit Root-Rechten einsehen kann. Es handelt sich hierbei um einen typischen Directory-Traversal-Fehler, über den der Angreifer aus dem vorgeschriebenen Verzeichnis ausbrechen kann. Zur Korrektur wurden folgende Zeilen zu edit_html.cgi hinzugefügt:

if (!&can_access($in{'file'})) { # ACL rules prevent access to file &error_exit(&text('view_eaccess', &html_escape($in{'file'}))); }

Der Code stellt mit “can_access()” sicher, dass ein Angreifer nicht unberechtigt auf Dateien zugreift.

Betroffen ist die Version 1.580, eventuell auch ältere.

Nach oben