FjÀrrutnyttjade sÄrbarheter i CUPS utskriftsserver

Simone Margaritelli, författare till brandvÀggen OpenSnitch och nÀtverksanalysverktyget bettercap, har i förtid avslöjat information om tidigare annonserade kritiska sÄrbarheter som möjliggör fjÀrrattacker mot distributioner av GNU/Linux, Solaris, FreeBSD och vissa andra BSD-system. Publiceringen var ursprungligen planerad till den 6 oktober, men pÄ grund av informationslÀckan tvingades informationen publiceras i förtid, innan de flesta distributionerna hann förbereda uppdateringar av paketen. SÄrbarheterna berör utskriftstjÀnsten CUPS och möjliggör fjÀrraktivering av kod pÄ systemet utan autentisering.

Den forskare som identifierade problemet har förberett en fungerande prototyp av en exploit som anvÀnder en kombination av flera sÄrbarheter och möjliggör fjÀrraktivering av kod med rÀttigheterna för processen för utskriftshantering CUPS (vanligtvis anvÀndaren "lp"). Exploiten gör det möjligt att osynligt byta ut anvÀndarens skrivare eller lÀgga till en ny skrivare kopplad till en angripares aktiva IPP-server, som ger en specialdesignad PPD-beskrivning av skrivaren. Bearbetningen av denna PPD vid utskriftsstart leder till exekvering av angriparens kod (det Àr nödvÀndigt att offret initierar utskrift pÄ den manipulerade eller utbytta skrivaren).

System med servern CUPS-utskrift och den aktiva processen cups-browsed, som tar emot nÀtverksanslutningar pÄ port 631 (UDP), Àr utsatta för attack. Attacken kan Àven utföras frÄn det lokala nÀtverket dÀr protokoll som zeroconf, mDNS eller DNS-SD anvÀnds för att fÄ tillgÄng till servern utskrift. Endast konfigurationer av cups-browsed dÀr vÀrdet "cups" anges i parametern BrowseRemoteProtocols i filen /etc/cups/cups-browsed.conf Àr sÄrbara. I distributioner med systemd kan nyttjandet av tjÀnsten cups-browsed kontrolleras med kommandot "sudo systemctl status cups-browsed".

SĂ„rbarheten förekommer i alla CUPS-baserade utskriftssystem som anvĂ€nder sĂ„rbara versioner av paketen cups-filters, libcupsfilters, libppd och cups-browsed. ÅtgĂ€rder finns för nĂ€rvarande endast tillgĂ€ngliga i form av patchar (1, 2, 3) — aktuella versioner av cups-filters 2.0.1, libcupsfilters 2.1b1, libppd 2.1b1 och cups-browsed 2.0.1 Ă€r sĂ„rbara. I distributionerna Ă€r problemet fortfarande ofixat, och uppdateringar kan följas pĂ„ följande sidor: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Som en tillfĂ€llig skyddsĂ„tgĂ€rd kan Ă„tkomst till UDP-port 631 frĂ„n externa nĂ€tverk stĂ€ngas av, tjĂ€nsten cups-browsed kan inaktiveras eller instĂ€llningen BrowseRemoteProtocols kan stĂ€llas in pĂ„ "none" innan uppdateringen installeras.

UpptÀckta sÄrbarheter:

  • CVE-2024-47176 — en sĂ„rbarhet i cups-browsed-processen, som skapar en nĂ€tverksanslutning som accepterar anslutningar pĂ„ port 631, knuten till alla befintliga nĂ€tverksgrĂ€nssnitt i systemet och tar emot IPP-förfrĂ„gningar "Get-Printer-Attributes" frĂ„n externa system. Genom att manipulera denna tjĂ€nst kan en angripare fĂ„ tillgĂ„ng till att lĂ€gga till en skrivare i systemet som kontrolleras av angriparen och exploatera genom att överföra PPD-konfigurationen för sĂ„rbarheter i andra CUPS-komponenter.
  • CVE-2024-47177 — en sĂ„rbarhet i foomatic-rip-hanteraren frĂ„n cups-filters-paketet, som möjliggör körning av kod genom att överföra parametern FoomaticRIPCommandLine i PPD-filen, som angriparen kan skicka genom den sĂ„rbarhet som beskrivs ovan i cups-browsed. De shell-kommandon som anges i parametern FoomaticRIPCommandLine körs som de Ă€r, oavsett att parametern kan stĂ€llas in av en obehörig. Till exempel, för att skriva till filen /tmp/VULNERABLE kan man ange "FoomaticRIPCommandLine: "echo 1 > /tmp/VULNERABLE".
  • CVE-2024-47175 — en sĂ„rbarhet i libppd, orsakad av bristen pĂ„ validering av vĂ€rdet ppdCreatePPDFromIPP2 vid skrivning av IPP-attribut till en temporĂ€r PPD-fil. Problemet möjliggör insĂ€ttning av godtyckliga data i den resulterande PPD-filen genom att bifoga attribut som anvĂ€nder radbrytningstecken. Till exempel kan man kringgĂ„ valideringen och tillsammans med tillĂ„tna attribut bifoga attributet FoomaticRIPCommandLine för att exploatera den sĂ„rbarhet som nĂ€mns ovan i cups-filters.
  • CVE-2024-47076 — en sĂ„rbarhet i libcupsfilters-biblioteket frĂ„n cups-filters-paketet, relaterad till brist pĂ„ validering av vĂ€rdena cfGetPrinterAttributes5, som returneras av en extern IPP-server, vilket ger en angripare möjlighet att initiera bearbetning av godtyckliga IPP-attribut i andra CUPS-delar, till exempel vid generering av PPD-filer.

Angreppsscenariot för CUPS bestÄr av följande steg:

  • Angriparen stĂ€ller upp sin egen IPP-server.
  • Skicka en UDP-paket med en lĂ€nk till skrivaren kopplad till den IPP-server som angriparen driver till offret.
  • NĂ€r offret tar emot detta paket kopplar offrets system till angriparens IPP-server och begĂ€r skrivarattribut.
  • Som svar pĂ„ offrets begĂ€ran returnerar angriparens IPP-server en PPD-fil med attribut, dĂ€r bland annat attributet FoomaticRIPCommandLine anges. Detta attribut kopplas till ett av de giltiga attributen med hjĂ€lp av tecknet "\n" i en rad (till exempel "cupsPrivacyURI: "https://www.google.com/\n*FoomaticRIPCommandLine: "), vilket gör att valideringen kringgĂ„s och resulterar i att FoomaticRIPCommandLine registreras som ett separat attribut nĂ€r de mottagna uppgifterna sparas i en tillfĂ€llig fil.
  • Som ett resultat av behandlingen av de överförda attributen i offrets system skapas en PPD-fil: 
 *cupsSNMPSupplies: False *cupsLanguages: "en" *cupsPrivacyURI: "https://www.google.com/" *FoomaticRIPCommandLine: "echo 1 > /tmp/I_AM_VULNERABLE" *cupsFilter2: "application/pdf application/vnd.cups-postscript 0 foomatic-rip" *cupsSingleFile: True *cupsFilter2: "application/vnd.cups-pdf application/pdf 0 -" 

  • Vid utskrift pĂ„ den av angriparen instĂ€llda skrivaren kommer kommandot "echo 1 > /tmp/I_AM_VULNERABLE" att köras i offrets system.

Den forskare som upptÀckte sÄrbarheterna noterar att det tog honom ett par dagar att hitta sÄrbarheten, men dÀrefter följde en utdragen korrespondens pÄ 22 dagar med utvecklarna av OpenPrinting-projektet i ett försök att övertyga dem om betydelsen av problemet och behovet av att förbereda patchar. Diskussionen stagnerade i tvister om huruvida de angivna problemen verkligen borde ÄtgÀrdas, och situationen vÀndes endast genom att skapa offentlig uppstÄndelse kring upptÀckten av det kritiska problemet. Det Àr ocksÄ intressant med lÀckan av information, dÀr den konfidentiella rapporten och exploiten som skickades till CERT dök upp pÄ forumet breachforums.st i öppen tillgÄng, trots det utfÀrdade embargot mot informationsavslöjande.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster