Vertiefung: Navigieren durch die kritische CUPS-Schwachstelle in GNU-Linux-Systemen
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.
- Der Bedrohungsakteur initiiert den Angriff
- 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.
- Das Opfersystem verarbeitet die Druckereigenschaften
- 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.
- Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
- 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.
- 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.
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.
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 buchenLaura 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.
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.
- Der Bedrohungsakteur initiiert den Angriff
- 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.
- Das Opfersystem verarbeitet die Druckereigenschaften
- 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.
- Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
- 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.
- 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.
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.
- Der Bedrohungsakteur initiiert den Angriff
- 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.
- Das Opfersystem verarbeitet die Druckereigenschaften
- 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.
- Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
- 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.
- 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.
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 buchenLaura 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.
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.
- Der Bedrohungsakteur initiiert den Angriff
- 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.
- Das Opfersystem verarbeitet die Druckereigenschaften
- 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.
- Das Opfersystem verbindet sich mit dem IPP-Server des Angreifers
- 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.
- 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
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 buchenHerunterladenRessourcen für den Einstieg
Die Leistungsfähigkeit von OpenText Fortify + Secure Code Warrior
OpenText Fortify und Secure Code Warrior bündeln ihre Kräfte, um Unternehmen dabei zu helfen, Risiken zu reduzieren, Entwickler zu Sicherheits-Champions zu machen und Kundenvertrauen aufzubauen. Lesen Sie hier mehr darüber.
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
Ressourcen für den Einstieg
OWASP Top 10 für LLM-Bewerbungen: Was ist neu, was hat sich geändert, und wie bleibt man sicher?
Bleiben Sie bei der Absicherung von LLM-Anwendungen mit den neuesten OWASP Top 10 Updates immer einen Schritt voraus. Entdecken Sie, was neu ist, was sich geändert hat und wie Secure Code Warrior Sie mit aktuellen Lernressourcen ausstattet, um Risiken in der generativen KI zu minimieren.
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.