La skaparen av OpenSnitch-brandväggen och Bettercap nätverksanalysator, gjorde det känt nyligen information om kritiska sårbarheter i skrivarservern CUPS och som tillåter fjärrkörning av kod utan autentisering. Dessa brister påverkar Linux, Solaris, FreeBSD och andra BSD-distributioner.
Avslöjandet Det var från början planerat till den 6 oktober, men en läcka tvingade fram avslöjandet innan de flesta distributioner hann implementera de nödvändiga säkerhetskorrigeringarna.
den Identifierade sårbarheter är följande:
- CVE-2024-47176: Denna sårbarhet påverkar CUPS-skanningsprocessen, som skapar ett nätverksuttag som lyssnar efter anslutningar på port 631, ansluter till alla nätverksgränssnitt på systemet. Genom denna port accepterar den IPP-förfrågningar av typen "Get-Printer-Attributes" från externa system. Genom att manipulera denna tjänst, En angripare kan lägga till en fjärrstyrd skrivare och utnyttja sårbarheter i andra CUPS-komponenter genom att överföra skadliga PPD-konfigurationer.
- CVE-2024-47177: Det är sårbartd finns i foomatic-rip-drivrutinen från koppar-filterpaketet. Tillåter exekvering av godtycklig kod genom att skicka parametern FoomaticRIPCommandLine in i en PPD-fil. På grund av sårbarheten i CUPS-surfprocessen, en angripare kan skicka skadliga PPD-filer som innehåller skalkommandon. Dessa kommandon, som de som anges i FoomaticRIPCommandLine, körs utan begränsningar.
- CVE-2024-47175: Denna sårbarhet i libppd är relaterat till bristen på validering av ppdCreatePPDFromIPP2-värdet när man skriver IPP-attribut till en temporär PPD-fil. Detta tillåter godtycklig ersättning av data i den resulterande PPD-filen, och drar fördel av att infoga attribut med ett radbrytningstecken. Hitåt, en angripare kan kringgå validering av tillåtna attribut och utnyttja sårbarheten i cups-filter genom parametersubstitution.
- CVE-2024-47076: Denna sårbarhet påverkar libcupsfilters-biblioteket i cups-filters-paketet på grund av bristande verifiering av värden som returneras av kommandot cfGetPrinterAttributes5 från en extern IPP-server. En angripare kan utnyttja detta för att bearbeta godtyckliga IPP-attribut inom andra CUPS-undersystem, till exempel generering av PPD-filer.
Beträffande den information som lämnades nämns att, Attacken påverkar CUPS-servrar som har den cups-blädda processen igång och som accepterar nätverksanslutningar på UDP-porten. Dessutom kan attacken komma från lokala nätverk som använder protokollen zeroconf, mDNS eller DNS-SD för att komma åt skrivarservrar. Endast system där konfigurationsfilen har parametern BrowseRemoteProtocols konfigurerade är sårbara.
Forskaren som upptäckte sårbarheten utvecklade en exploatering funtional som utnyttjar en kombination av flera fel, som Möjliggör fjärrexekvering av kod med privilegierna för den process som ansvarar för att hantera utskriftsjobb i CUPS (normalt tilldelat användaren "lp"). Detta utnyttjande låter dig ändra parametrarna för en skrivare utan att användaren märker det eller lägg till en ny skrivare kopplad till en skadlig IPP-server. När ett utskriftsjobb initieras kan PPD-filen som manipulerats av angriparen utlösa exekveringen av hans kod, närhelst offret skickar ett utskriftsjobb till den komprometterade eller falska skrivaren.
På många Linux-distributioner körs cups-browsed som standard i en konfiguration som tillåter exploatering. På system som använder systemd kan du kontrollera om cups-browsed-tjänsten är aktiv med kommandot: sudo systemctl status cups-browsed.
Sårbarheten påverkar alla utskriftssystem som använder CUPS och sårbara versioner av dess paket. För närvarande är korrigeringar endast tillgängliga i form av patchar och nuvarande versioner upp till 2.0.1 är sårbara. Som en tillfällig åtgärd för att minska risken medan distributioner distribuerar relevanta uppdateringar, kan du blockera åtkomst till UDP-port 631 från externa nätverk, inaktivera cups-browsed-tjänsten eller ändra alternativet BrowseRemoteProtocols till "ingen".
Slutligen, Om du är intresserad av att veta mer om det, Du kan kontrollera detaljerna i följande länk.