RPM: Zwei Schwachstelle

In dem RPM Paket Manager wurden zwei Sicherheitslücken entdeckt. Die erste Schwachstelle hat zur Folge, dass ein entfernter Angreifer Befehle mit höheren Rechten ausführen kann. Der Angreifer muss hierzu eine spezielle RPM-Datei konstruieren. Ein spezieller CPIO-Header der RPM-Datei führt dann dazu, dass ein Integer-Overflow-Fehler in dem RPM Programm ausgelöst wird. Dieser Fehler wiederum hat einen Stack-Overflow-Fehler zur Folge. Hierdurch werden die vom Angreifer gewünschten Befehle ausgeführt, die mit den Rechten des Anwenders laufen.

Der Programmierfehler befindet sich in der rpmcpioHeaderRead()-Funktion. Hier wird die nameSize-Variable nicht auf ihre Länge kontrolliert. Der Patch ist entsprechend einfach: »if (nameSize <= 0 || nameSize > 4096) { return RPMERR_BAD_HEADER; }« Im Falle eines falschen Wertes für die nameSize-Variable wird nun einfach ein Fehler gemeldet, der signalisiert, dass der RPM-Header nicht korrekt ist. Eine weitere Sicherheitslücke in RPM erlaubt es einem lokalen Angreifer höhere Rechte auf dem System zu erlangen. Ursache hierfür ist eine Race Condition, die beim Schreiben temporärer Dateien auftritt.

Nach oben