c't 20/2023
S. 40
Aktuell
CUPS Drucksystem: Sicherheitslücke

Unerwünschte Lagerräumung

Grober Konfigurationsfehler im Drucksystem CUPS

Der Druckspezialist Gerhard Muth hat mehrere Schwachstellen im Drucksystem CUPS gefunden, das auf unixoiden Betriebssystemen verbreitet ist. Diese halten Angreifern seit Jahren die Tür zu unvermutet aufbewahrten PDF-Dokumenten offen.

Von Gerhard Muth und Dušan Živadinović

Angreifer mit Zugang zum lokalen Netz können ohne Mitwirkung von CUPS-Benutzern und ohne deren Kennwort ausgedruckte PDF-Dokumente herunterladen (CVE-2023-32360, siehe ct.de/yzxt). Das ist heikel, weil die Dokumente beliebige vertrauliche Informationen enthalten können, beispielsweise Kommunikation mit Geschäftspartnern, Mitarbeiterbewertungen oder Passwörter. Wenn man den CUPS-Server in der Router-Konfiguration über das Internet erreichbar gemacht hat, lässt sich der Fehler auch aus der Ferne ausnutzen. Erschwerend kommt hinzu, dass CUPS (Common Unix Printing System), anders als in der Konfiguration eingetragen, nicht alle 24 Stunden aufräumt, sondern gedruckte PDF-Dokumente teils monatelang verwahrt.

Die einzige Voraussetzung zum Ausnutzen dieser Schwachstelle ist, dass auf dem betreffenden System die Druckerfreigabe im Netzwerk aktiviert ist; es muss kein bestimmter Drucker ausgewählt sein.

CUPS wird seit einiger Zeit von Apple und von der Entwicklergruppe OpenPrinting in zwei Zweigen gepflegt. Apple setzt CUPS in eigenen Varianten auf macOS, iOS und iPadOS ein, während viele Linux-Distributionen den OpenPrinting-Zweig nutzen. Lediglich iOS und iPadOS sind nicht gefährdet, denn sie enthalten keine Serverfunktionen.

Die Konfiguration des Druckservers CUPS lässt sich beispielsweise über einen Browser bearbeiten und abdichten. Das empfiehlt sich wegen einer Schwachstelle für Versionen bis einschließlich 2.4.2.
Die Konfiguration des Druckservers CUPS lässt sich beispielsweise über einen Browser bearbeiten und abdichten. Das empfiehlt sich wegen einer Schwachstelle für Versionen bis einschließlich 2.4.2.

Mehrere Fehler

Es ist unklar, wie lange CUPS ausgedruckte Dokumente im Spool-Verzeichnis verwahrt. Immerhin stößt das Herunterladen dieser Dokumente doch noch die Aufräumaktion an, wonach alle alten PDFs gelöscht sind, egal wie alt. Danach gedruckte Dokumente bleiben dann tatsächlich so wie konfiguriert maximal 24 Stunden liegen (siehe Variable PreserveJobFiles in der Konfigurationsdatei).

Der Konfigurationsfehler lässt sich mit jeder Software ausnutzen, die für den Download von Dokumenten aus dem Spool-Verzeichnis ausgelegt ist. Gerhard Muth informierte Apple und OpenPrinting bereits im Herbst 2022 darüber. Anschließend wurde die Lücke in beiden CUPS-Zweigen gefixt und Apple lieferte im Mai dieses Jahres die Fixes für macOS 11, 12 und 13 aus. Doch die meisten Linux-Distributionen nahmen das korrigierte CUPS 2.4.3 nicht auf und blieben bis zum Drucktermin dieses Artikels unbehandelt.

Beispielsweise hält das Repository für Debian Buster nur CUPS 2.2.10-6+deb10u7 vor. Ähnlich sieht es bei Debian Bullseye aus (2.3.3) und auch Ubuntu enthielt kurz vor Druckschluss dieses Artikels nur CUPS 2.4.2. Ursache dürfte sein, dass die Release Notes keinen Hinweis auf Lücke und Fix enthalten (siehe ct.de/yzxt).

Dichtmittel in Handarbeit

Falls für Ihr System kein aktuelles CUPS erhältlich ist, können Sie es in Eigenregie abdichten. Die CUPS-Version kann man beispielsweise mit dem Webbrowser über die URL http://localhost:631 auslesen. Um das Loch zu schließen, öffnen Sie http://localhost:631/admin und fügen der Konfiguration im Abschnitt „Default Policy“ ein neues Limit für CUPS-Get-Document hinzu:

<Limit CUPS-Get-Document>
  AuthType Default
  Require user @OWNER @SYSTEM
  Order deny,allow
</Limit>

Entfernen Sie dann die schon ab Werk eingetragene und ungenügende Definition des Limits. Damit die Änderung übernommen wird, startet man den Druckserver neu. Auf Debian führen Sie dazu sudo systemctl restart cups aus. Auf macOS erledigen das diese drei Befehle:

sudo su
launchctl unload -w /System/Library/LaunchDaemons/org.cups.cupsd.plist
launchctl load -w /System/Library/LaunchDaemons/org.cups.cupsd.plist

Anschließend gewährt CUPS den Zugriff auf bevorratete PDF-Dokumente nur nach Authentifizierung. Das haben wir mit CUPS 2.4.1 ausprobiert. Mit älteren CUPS-Versionen sollte der kleine Trick ebenfalls funktionieren.

Linux-Nutzer können sich alternativ mit einer CUPS-Installation aus Canonicals App-Store Snap behelfen (ct.de/yzxt). (dz@ct.de)

CUPS Release Notes, Snap Store: ct.de/yzxt

Kommentare lesen (5 Beiträge)