Blog

Vertiefung: Navigieren durch die kritische CUPS-Schwachstelle in GNU-Linux-Systemen

Laura Verheyde
Veröffentlicht Okt 07, 2024

Linux-Benutzer hatten es in letzter Zeit nicht leicht, denn in den letzten Jahren wurden mehrere hochgradige Sicherheitslücken bekannt, die das System auf unterschiedliche Weise beeinträchtigen. Sicherheitsforscher haben nun eine weitere Gruppe von Schwachstellen zu entpacken, die alle mit der Funktion Common UNIX Printing System (CUPS) zu tun haben, die auf GNU/Linux-Systeme abzielt und einen potenziellen Weg für eine starke Remote Code Execution (RCE) bietet.

Am 27. September 2024 veröffentlichte Simone Margaritelli von evilsocket.net kritische Informationen über mehrere ausnutzbare Schwachstellen in CUPS, wobei vier davon CVEs zugewiesen wurden. Diese Zahl könnte noch steigen, aber zum Zeitpunkt der Erstellung dieses Artikels diskutiert die Sicherheitsgemeinschaft über den tatsächlichen Schweregrad dieser Entdeckungen. Während eine der CVEs, CVE-2024-47177, von MITRE derzeit als kritisch eingestuft wird, ist die erfolgreiche Manipulation dieses Befehlsinjektionsfehlers von Servern abhängig, auf denen der CUPS-Dienst aktiviert ist, und erfordert außerdem Zugriff auf den UDP-Port 631 oder DNS-SD. RedHat weist jedoch darauf hin, dass es möglich ist, CUPS auf einen anderen Port umzuleiten. 

Margaritellis umfassende Aufschlüsselung des Vorfalls offenbart eine heimtückische, komplexe Kette von Angriffen, die trotz der Meinungsverschiedenheiten in der Community nicht ignoriert werden sollte. Der Vorfall bietet uns eine Lektion darüber, dass scheinbar harmlose Abhängigkeiten ausgenutzt werden können, wenn ein Bedrohungsakteur entschlossen genug ist und wenn durch schlechte Codierungsmuster kleine Zeitfenster offen gelassen wurden.

Das CUPS-Szenario unterscheidet sich ein wenig von dem, was viele Entwickler und AppSec-Profis bisher erlebt haben, also lassen Sie uns einen Blick darauf werfen und Ihre Fähigkeiten auf diesem Weg testen.

Die Sicherheitslücke: Remote Code Execution (RCE) über CUPS

Der Evilsocket-Blog bietet einen unübertroffenen, gründlichen Hintergrund zu diesen Exploits, und wir werden diese Quelle weiterhin aufmerksam verfolgen. Margaritelli zitiert in seinem Artikel auch eine ungenannte Quelle, die sich nicht optimistisch über die allgemeine Sicherheitsstabilität von Linux äußert:



"Vom allgemeinen Sicherheitsstandpunkt aus gesehen ist ein ganzes Linux-System in seiner heutigen Form nur ein endloses und hoffnungsloses Durcheinander von Sicherheitslücken, die darauf warten, ausgenutzt zu werden."

Dies ist eine ernüchternde Erinnerung an die inhärenten Sicherheitsrisiken, die in Open-Source-Umgebungen nach wie vor vorherrschen, ganz zu schweigen von der dringenden Notwendigkeit eines erhöhten Sicherheitsbewusstseins und sicherer Programmierkenntnisse in der weltweiten Entwicklergemeinschaft.

Lassen Sie uns einen Blick auf die CVEs werfen:

DieVerwundbarkeitskette ist weit verbreitet und wirkt sich derzeit auf alle aktuellen und früheren Versionen der folgenden Pakete aus:

  • distrotech/becher-filter
  • OpenPrinting/Tassen-Filter
  • Cups-browsed
  • libcupsfilters
  • libppd

CUPS ist seit über zwei Jahrzehnten eine Legacy-Komponente von UNIX- und Linux-Betriebssystemen. Aufgrund seiner Funktion als Abhängigkeit von Druckdiensten ist es sehr anfällig für Netzwerkanfragen, was es zu einem bevorzugten Ziel für Schwachstellen der RCE-Klasse macht.

In diesem Fall gibt es jedoch eine raffinierte Kombination der Angriffe, die zu einem erfolgreichen Ergebnis führt. Im Wesentlichen handelt es sich um die Fähigkeit eines nicht authentifizierten, unentdeckten Angreifers, IPP-URLs (Internet Printing Protocol) durch bösartige URLs zu ersetzen und zusätzlich Direktiven zu ändern, die eine Befehlsinjektion in die PPD-Datei (PostScript Printer Description) bewirken können, eine Datei, die die Funktionen des neu hinzugefügten Druckers beschreibt. Dies führt zu einem Angriff zur Befehlsausführung, sobald ein Druckauftrag aktiviert wird, und beruht auf einer fehlenden Eingabevalidierung innerhalb der CUPS-Komponenten.

Außerdem ist die Behebung dieser speziellen Schwachstelle eine Art zweischneidiges Schwert, wie Evilsocket betont. CUPS enthält den foomatic-rip-Filter, eine ausführbare Datei, die bereits in der Vergangenheit als hochriskante, ausnutzbare Komponente bekannt war. CVEs, die sich auf diese Komponente beziehen, reichen bis ins Jahr 2011 zurück, und obwohl festgestellt wurde, dass foomatic-rip zur Ausführung von Betriebssystembefehlen genutzt werden kann, führt die Behebung dieses Problems zu Stabilitätsproblemen und zum Verlust der Unterstützung für viele ältere Drucker. Es ist ein komplexes Problem, das es zu lösen gilt.

  1. Der Bedrohungsakteur initiiert den Angriff
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Das Opfersystem verarbeitet die Druckereigenschaften
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Wie können Sie das RCE-Risiko mindern?

Unternehmen, die CUPS im Rahmen ihres Geschäftsbetriebs einsetzen, müssen die empfohlenen Abhilfemaßnahmen von Evilsocket und RedHat befolgen. Dazu gehört unter anderem das Einspielen von Sicherheitspatches als Priorität für den Notfall.

Für Command Injection im Allgemeinen lesen Sie bitte unseren umfassenden Leitfaden.

Wenn Sie an weiteren kostenlosen Kodierungsrichtlinien interessiert sind, besuchen Sie Secure Code Coach, um sich über die besten Praktiken für sichere Kodierung zu informieren.

Ressource anzeigen
Ressource anzeigen

Entdecken Sie die neuesten Sicherheitsprobleme, mit denen Linux-Benutzer konfrontiert sind, indem wir die jüngsten hochgradigen Sicherheitslücken im Common UNIX Printing System (CUPS) untersuchen. Erfahren Sie, wie diese Probleme zu einer möglichen Remote Code Execution (RCE) führen können und was Sie tun können, um Ihre Systeme zu schützen.

Interessiert an mehr?

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchen
Weitergeben:
Autor
Laura Verheyde
Veröffentlicht Okt 07, 2024

Laura Verheyde ist Softwareentwicklerin bei Secure Code Warrior und beschäftigt sich mit der Erforschung von Schwachstellen und der Erstellung von Inhalten für Missions und Coding Labs.

Weitergeben:

Linux-Benutzer hatten es in letzter Zeit nicht leicht, denn in den letzten Jahren wurden mehrere hochgradige Sicherheitslücken bekannt, die das System auf unterschiedliche Weise beeinträchtigen. Sicherheitsforscher haben nun eine weitere Gruppe von Schwachstellen zu entpacken, die alle mit der Funktion Common UNIX Printing System (CUPS) zu tun haben, die auf GNU/Linux-Systeme abzielt und einen potenziellen Weg für eine starke Remote Code Execution (RCE) bietet.

Am 27. September 2024 veröffentlichte Simone Margaritelli von evilsocket.net kritische Informationen über mehrere ausnutzbare Schwachstellen in CUPS, wobei vier davon CVEs zugewiesen wurden. Diese Zahl könnte noch steigen, aber zum Zeitpunkt der Erstellung dieses Artikels diskutiert die Sicherheitsgemeinschaft über den tatsächlichen Schweregrad dieser Entdeckungen. Während eine der CVEs, CVE-2024-47177, von MITRE derzeit als kritisch eingestuft wird, ist die erfolgreiche Manipulation dieses Befehlsinjektionsfehlers von Servern abhängig, auf denen der CUPS-Dienst aktiviert ist, und erfordert außerdem Zugriff auf den UDP-Port 631 oder DNS-SD. RedHat weist jedoch darauf hin, dass es möglich ist, CUPS auf einen anderen Port umzuleiten. 

Margaritellis umfassende Aufschlüsselung des Vorfalls offenbart eine heimtückische, komplexe Kette von Angriffen, die trotz der Meinungsverschiedenheiten in der Community nicht ignoriert werden sollte. Der Vorfall bietet uns eine Lektion darüber, dass scheinbar harmlose Abhängigkeiten ausgenutzt werden können, wenn ein Bedrohungsakteur entschlossen genug ist und wenn durch schlechte Codierungsmuster kleine Zeitfenster offen gelassen wurden.

Das CUPS-Szenario unterscheidet sich ein wenig von dem, was viele Entwickler und AppSec-Profis bisher erlebt haben, also lassen Sie uns einen Blick darauf werfen und Ihre Fähigkeiten auf diesem Weg testen.

Die Sicherheitslücke: Remote Code Execution (RCE) über CUPS

Der Evilsocket-Blog bietet einen unübertroffenen, gründlichen Hintergrund zu diesen Exploits, und wir werden diese Quelle weiterhin aufmerksam verfolgen. Margaritelli zitiert in seinem Artikel auch eine ungenannte Quelle, die sich nicht optimistisch über die allgemeine Sicherheitsstabilität von Linux äußert:



"Vom allgemeinen Sicherheitsstandpunkt aus gesehen ist ein ganzes Linux-System in seiner heutigen Form nur ein endloses und hoffnungsloses Durcheinander von Sicherheitslücken, die darauf warten, ausgenutzt zu werden."

Dies ist eine ernüchternde Erinnerung an die inhärenten Sicherheitsrisiken, die in Open-Source-Umgebungen nach wie vor vorherrschen, ganz zu schweigen von der dringenden Notwendigkeit eines erhöhten Sicherheitsbewusstseins und sicherer Programmierkenntnisse in der weltweiten Entwicklergemeinschaft.

Lassen Sie uns einen Blick auf die CVEs werfen:

DieVerwundbarkeitskette ist weit verbreitet und wirkt sich derzeit auf alle aktuellen und früheren Versionen der folgenden Pakete aus:

  • distrotech/becher-filter
  • OpenPrinting/Tassen-Filter
  • Cups-browsed
  • libcupsfilters
  • libppd

CUPS ist seit über zwei Jahrzehnten eine Legacy-Komponente von UNIX- und Linux-Betriebssystemen. Aufgrund seiner Funktion als Abhängigkeit von Druckdiensten ist es sehr anfällig für Netzwerkanfragen, was es zu einem bevorzugten Ziel für Schwachstellen der RCE-Klasse macht.

In diesem Fall gibt es jedoch eine raffinierte Kombination der Angriffe, die zu einem erfolgreichen Ergebnis führt. Im Wesentlichen handelt es sich um die Fähigkeit eines nicht authentifizierten, unentdeckten Angreifers, IPP-URLs (Internet Printing Protocol) durch bösartige URLs zu ersetzen und zusätzlich Direktiven zu ändern, die eine Befehlsinjektion in die PPD-Datei (PostScript Printer Description) bewirken können, eine Datei, die die Funktionen des neu hinzugefügten Druckers beschreibt. Dies führt zu einem Angriff zur Befehlsausführung, sobald ein Druckauftrag aktiviert wird, und beruht auf einer fehlenden Eingabevalidierung innerhalb der CUPS-Komponenten.

Außerdem ist die Behebung dieser speziellen Schwachstelle eine Art zweischneidiges Schwert, wie Evilsocket betont. CUPS enthält den foomatic-rip-Filter, eine ausführbare Datei, die bereits in der Vergangenheit als hochriskante, ausnutzbare Komponente bekannt war. CVEs, die sich auf diese Komponente beziehen, reichen bis ins Jahr 2011 zurück, und obwohl festgestellt wurde, dass foomatic-rip zur Ausführung von Betriebssystembefehlen genutzt werden kann, führt die Behebung dieses Problems zu Stabilitätsproblemen und zum Verlust der Unterstützung für viele ältere Drucker. Es ist ein komplexes Problem, das es zu lösen gilt.

  1. Der Bedrohungsakteur initiiert den Angriff
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Das Opfersystem verarbeitet die Druckereigenschaften
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Wie können Sie das RCE-Risiko mindern?

Unternehmen, die CUPS im Rahmen ihres Geschäftsbetriebs einsetzen, müssen die empfohlenen Abhilfemaßnahmen von Evilsocket und RedHat befolgen. Dazu gehört unter anderem das Einspielen von Sicherheitspatches als Priorität für den Notfall.

Für Command Injection im Allgemeinen lesen Sie bitte unseren umfassenden Leitfaden.

Wenn Sie an weiteren kostenlosen Kodierungsrichtlinien interessiert sind, besuchen Sie Secure Code Coach, um sich über die besten Praktiken für sichere Kodierung zu informieren.

Ressource anzeigen
Ressource anzeigen

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.

Linux-Benutzer hatten es in letzter Zeit nicht leicht, denn in den letzten Jahren wurden mehrere hochgradige Sicherheitslücken bekannt, die das System auf unterschiedliche Weise beeinträchtigen. Sicherheitsforscher haben nun eine weitere Gruppe von Schwachstellen zu entpacken, die alle mit der Funktion Common UNIX Printing System (CUPS) zu tun haben, die auf GNU/Linux-Systeme abzielt und einen potenziellen Weg für eine starke Remote Code Execution (RCE) bietet.

Am 27. September 2024 veröffentlichte Simone Margaritelli von evilsocket.net kritische Informationen über mehrere ausnutzbare Schwachstellen in CUPS, wobei vier davon CVEs zugewiesen wurden. Diese Zahl könnte noch steigen, aber zum Zeitpunkt der Erstellung dieses Artikels diskutiert die Sicherheitsgemeinschaft über den tatsächlichen Schweregrad dieser Entdeckungen. Während eine der CVEs, CVE-2024-47177, von MITRE derzeit als kritisch eingestuft wird, ist die erfolgreiche Manipulation dieses Befehlsinjektionsfehlers von Servern abhängig, auf denen der CUPS-Dienst aktiviert ist, und erfordert außerdem Zugriff auf den UDP-Port 631 oder DNS-SD. RedHat weist jedoch darauf hin, dass es möglich ist, CUPS auf einen anderen Port umzuleiten. 

Margaritellis umfassende Aufschlüsselung des Vorfalls offenbart eine heimtückische, komplexe Kette von Angriffen, die trotz der Meinungsverschiedenheiten in der Community nicht ignoriert werden sollte. Der Vorfall bietet uns eine Lektion darüber, dass scheinbar harmlose Abhängigkeiten ausgenutzt werden können, wenn ein Bedrohungsakteur entschlossen genug ist und wenn durch schlechte Codierungsmuster kleine Zeitfenster offen gelassen wurden.

Das CUPS-Szenario unterscheidet sich ein wenig von dem, was viele Entwickler und AppSec-Profis bisher erlebt haben, also lassen Sie uns einen Blick darauf werfen und Ihre Fähigkeiten auf diesem Weg testen.

Die Sicherheitslücke: Remote Code Execution (RCE) über CUPS

Der Evilsocket-Blog bietet einen unübertroffenen, gründlichen Hintergrund zu diesen Exploits, und wir werden diese Quelle weiterhin aufmerksam verfolgen. Margaritelli zitiert in seinem Artikel auch eine ungenannte Quelle, die sich nicht optimistisch über die allgemeine Sicherheitsstabilität von Linux äußert:



"Vom allgemeinen Sicherheitsstandpunkt aus gesehen ist ein ganzes Linux-System in seiner heutigen Form nur ein endloses und hoffnungsloses Durcheinander von Sicherheitslücken, die darauf warten, ausgenutzt zu werden."

Dies ist eine ernüchternde Erinnerung an die inhärenten Sicherheitsrisiken, die in Open-Source-Umgebungen nach wie vor vorherrschen, ganz zu schweigen von der dringenden Notwendigkeit eines erhöhten Sicherheitsbewusstseins und sicherer Programmierkenntnisse in der weltweiten Entwicklergemeinschaft.

Lassen Sie uns einen Blick auf die CVEs werfen:

DieVerwundbarkeitskette ist weit verbreitet und wirkt sich derzeit auf alle aktuellen und früheren Versionen der folgenden Pakete aus:

  • distrotech/becher-filter
  • OpenPrinting/Tassen-Filter
  • Cups-browsed
  • libcupsfilters
  • libppd

CUPS ist seit über zwei Jahrzehnten eine Legacy-Komponente von UNIX- und Linux-Betriebssystemen. Aufgrund seiner Funktion als Abhängigkeit von Druckdiensten ist es sehr anfällig für Netzwerkanfragen, was es zu einem bevorzugten Ziel für Schwachstellen der RCE-Klasse macht.

In diesem Fall gibt es jedoch eine raffinierte Kombination der Angriffe, die zu einem erfolgreichen Ergebnis führt. Im Wesentlichen handelt es sich um die Fähigkeit eines nicht authentifizierten, unentdeckten Angreifers, IPP-URLs (Internet Printing Protocol) durch bösartige URLs zu ersetzen und zusätzlich Direktiven zu ändern, die eine Befehlsinjektion in die PPD-Datei (PostScript Printer Description) bewirken können, eine Datei, die die Funktionen des neu hinzugefügten Druckers beschreibt. Dies führt zu einem Angriff zur Befehlsausführung, sobald ein Druckauftrag aktiviert wird, und beruht auf einer fehlenden Eingabevalidierung innerhalb der CUPS-Komponenten.

Außerdem ist die Behebung dieser speziellen Schwachstelle eine Art zweischneidiges Schwert, wie Evilsocket betont. CUPS enthält den foomatic-rip-Filter, eine ausführbare Datei, die bereits in der Vergangenheit als hochriskante, ausnutzbare Komponente bekannt war. CVEs, die sich auf diese Komponente beziehen, reichen bis ins Jahr 2011 zurück, und obwohl festgestellt wurde, dass foomatic-rip zur Ausführung von Betriebssystembefehlen genutzt werden kann, führt die Behebung dieses Problems zu Stabilitätsproblemen und zum Verlust der Unterstützung für viele ältere Drucker. Es ist ein komplexes Problem, das es zu lösen gilt.

  1. Der Bedrohungsakteur initiiert den Angriff
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Das Opfersystem verarbeitet die Druckereigenschaften
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Wie können Sie das RCE-Risiko mindern?

Unternehmen, die CUPS im Rahmen ihres Geschäftsbetriebs einsetzen, müssen die empfohlenen Abhilfemaßnahmen von Evilsocket und RedHat befolgen. Dazu gehört unter anderem das Einspielen von Sicherheitspatches als Priorität für den Notfall.

Für Command Injection im Allgemeinen lesen Sie bitte unseren umfassenden Leitfaden.

Wenn Sie an weiteren kostenlosen Kodierungsrichtlinien interessiert sind, besuchen Sie Secure Code Coach, um sich über die besten Praktiken für sichere Kodierung zu informieren.

Auf Ressource zugreifen

Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht ansehenDemo buchen
Weitergeben:
Interessiert an mehr?

Weitergeben:
Autor
Laura Verheyde
Veröffentlicht Okt 07, 2024

Laura Verheyde ist Softwareentwicklerin bei Secure Code Warrior und beschäftigt sich mit der Erforschung von Schwachstellen und der Erstellung von Inhalten für Missions und Coding Labs.

Weitergeben:

Linux-Benutzer hatten es in letzter Zeit nicht leicht, denn in den letzten Jahren wurden mehrere hochgradige Sicherheitslücken bekannt, die das System auf unterschiedliche Weise beeinträchtigen. Sicherheitsforscher haben nun eine weitere Gruppe von Schwachstellen zu entpacken, die alle mit der Funktion Common UNIX Printing System (CUPS) zu tun haben, die auf GNU/Linux-Systeme abzielt und einen potenziellen Weg für eine starke Remote Code Execution (RCE) bietet.

Am 27. September 2024 veröffentlichte Simone Margaritelli von evilsocket.net kritische Informationen über mehrere ausnutzbare Schwachstellen in CUPS, wobei vier davon CVEs zugewiesen wurden. Diese Zahl könnte noch steigen, aber zum Zeitpunkt der Erstellung dieses Artikels diskutiert die Sicherheitsgemeinschaft über den tatsächlichen Schweregrad dieser Entdeckungen. Während eine der CVEs, CVE-2024-47177, von MITRE derzeit als kritisch eingestuft wird, ist die erfolgreiche Manipulation dieses Befehlsinjektionsfehlers von Servern abhängig, auf denen der CUPS-Dienst aktiviert ist, und erfordert außerdem Zugriff auf den UDP-Port 631 oder DNS-SD. RedHat weist jedoch darauf hin, dass es möglich ist, CUPS auf einen anderen Port umzuleiten. 

Margaritellis umfassende Aufschlüsselung des Vorfalls offenbart eine heimtückische, komplexe Kette von Angriffen, die trotz der Meinungsverschiedenheiten in der Community nicht ignoriert werden sollte. Der Vorfall bietet uns eine Lektion darüber, dass scheinbar harmlose Abhängigkeiten ausgenutzt werden können, wenn ein Bedrohungsakteur entschlossen genug ist und wenn durch schlechte Codierungsmuster kleine Zeitfenster offen gelassen wurden.

Das CUPS-Szenario unterscheidet sich ein wenig von dem, was viele Entwickler und AppSec-Profis bisher erlebt haben, also lassen Sie uns einen Blick darauf werfen und Ihre Fähigkeiten auf diesem Weg testen.

Die Sicherheitslücke: Remote Code Execution (RCE) über CUPS

Der Evilsocket-Blog bietet einen unübertroffenen, gründlichen Hintergrund zu diesen Exploits, und wir werden diese Quelle weiterhin aufmerksam verfolgen. Margaritelli zitiert in seinem Artikel auch eine ungenannte Quelle, die sich nicht optimistisch über die allgemeine Sicherheitsstabilität von Linux äußert:



"Vom allgemeinen Sicherheitsstandpunkt aus gesehen ist ein ganzes Linux-System in seiner heutigen Form nur ein endloses und hoffnungsloses Durcheinander von Sicherheitslücken, die darauf warten, ausgenutzt zu werden."

Dies ist eine ernüchternde Erinnerung an die inhärenten Sicherheitsrisiken, die in Open-Source-Umgebungen nach wie vor vorherrschen, ganz zu schweigen von der dringenden Notwendigkeit eines erhöhten Sicherheitsbewusstseins und sicherer Programmierkenntnisse in der weltweiten Entwicklergemeinschaft.

Lassen Sie uns einen Blick auf die CVEs werfen:

DieVerwundbarkeitskette ist weit verbreitet und wirkt sich derzeit auf alle aktuellen und früheren Versionen der folgenden Pakete aus:

  • distrotech/becher-filter
  • OpenPrinting/Tassen-Filter
  • Cups-browsed
  • libcupsfilters
  • libppd

CUPS ist seit über zwei Jahrzehnten eine Legacy-Komponente von UNIX- und Linux-Betriebssystemen. Aufgrund seiner Funktion als Abhängigkeit von Druckdiensten ist es sehr anfällig für Netzwerkanfragen, was es zu einem bevorzugten Ziel für Schwachstellen der RCE-Klasse macht.

In diesem Fall gibt es jedoch eine raffinierte Kombination der Angriffe, die zu einem erfolgreichen Ergebnis führt. Im Wesentlichen handelt es sich um die Fähigkeit eines nicht authentifizierten, unentdeckten Angreifers, IPP-URLs (Internet Printing Protocol) durch bösartige URLs zu ersetzen und zusätzlich Direktiven zu ändern, die eine Befehlsinjektion in die PPD-Datei (PostScript Printer Description) bewirken können, eine Datei, die die Funktionen des neu hinzugefügten Druckers beschreibt. Dies führt zu einem Angriff zur Befehlsausführung, sobald ein Druckauftrag aktiviert wird, und beruht auf einer fehlenden Eingabevalidierung innerhalb der CUPS-Komponenten.

Außerdem ist die Behebung dieser speziellen Schwachstelle eine Art zweischneidiges Schwert, wie Evilsocket betont. CUPS enthält den foomatic-rip-Filter, eine ausführbare Datei, die bereits in der Vergangenheit als hochriskante, ausnutzbare Komponente bekannt war. CVEs, die sich auf diese Komponente beziehen, reichen bis ins Jahr 2011 zurück, und obwohl festgestellt wurde, dass foomatic-rip zur Ausführung von Betriebssystembefehlen genutzt werden kann, führt die Behebung dieses Problems zu Stabilitätsproblemen und zum Verlust der Unterstützung für viele ältere Drucker. Es ist ein komplexes Problem, das es zu lösen gilt.

  1. Der Bedrohungsakteur initiiert den Angriff
    1. CVE-2024-47176: cups-browsed <= 2.0.1 is vulnerable because it binds to UDP port 631 using INADDR_ANY, which means it trusts any packet received from any source. This allows an unauthenticated remote attacker to send a malicious UDP packet with a manipulated IPP URL (pointing to the attacker-controlled IPP server), triggering the vulnerability. The victim’s machine now thinks it’s connecting to a new printer and sends a request asking for printer attributes.
  2. Das Opfersystem verarbeitet die Druckereigenschaften
    1. CVE-2024-47076: libcupsfilters <= 2.1b1 has a vulnerability in cfGetPrinterAttributes5, which does not properly validate or sanitize the IPP attributes returned from an IPP server. When cups-browsed processes the packet, it can be tricked into reading malicious attributes sent by the attacker.
  3. Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
    1. CVE-2024-47175: libppd <= 2.1b1 in the ppdCreatePPDFromIPP2 function does not properly validate or sanitize IPP attributes when saving them to a temporary PPD (PostScript Printer Description) file. This allows the attacker to inject arbitrary data into a PPD file, including the FoomaticRIPCommandLine directive, which the printing system can later execute.
  4. Victim system initiates print job and attacker’s code is executed
    CVE-2024-47177
    : cups-filters <= 2.0.1 is vulnerable because the foomatic-rip filter executes arbitrary commands through the FoomaticRIPCommandLine directive, allowing the attacker to run commands as the cups-browsed process. The attacker waits for the victim’s machine to initiate a print job. The moment this happens, the attacker’s malicious code will be executed (Remote Code Execution).

Wie können Sie das RCE-Risiko mindern?

Unternehmen, die CUPS im Rahmen ihres Geschäftsbetriebs einsetzen, müssen die empfohlenen Abhilfemaßnahmen von Evilsocket und RedHat befolgen. Dazu gehört unter anderem das Einspielen von Sicherheitspatches als Priorität für den Notfall.

Für Command Injection im Allgemeinen lesen Sie bitte unseren umfassenden Leitfaden.

Wenn Sie an weiteren kostenlosen Kodierungsrichtlinien interessiert sind, besuchen Sie Secure Code Coach, um sich über die besten Praktiken für sichere Kodierung zu informieren.

Inhaltsübersicht

Ressource anzeigen
Interessiert an mehr?

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchenHerunterladen
Weitergeben:
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge