Az elmúlt napokban egy komoly Linux biztonsági résről szivárogtak hírek a közösségi médiában, és a mai napon hivatalosan is bejelentették. A CUPS (Common UNIX Printing System) nyomtatási rendszerében felfedezett távvezérelhető kódvégrehajtási hiba minden jelentős Linux disztribúciót érint, köztük az Ubuntut és a Chrome OS-t is.
Azonnal kellene frissíteni
A sebezhetőség súlyossági értéke 9,9, amely a legkritikusabb kategóriába sorolja a hibát. A Canonical biztonsági blogja szerint a hibát úgy lehet kihasználni, hogy egy támadó által vezérelt PPD (PostScript Printer Description) fájlt generálnak a CUPS számára, amely egy tetszőleges parancsot futtat, amikor a következő nyomtatási feladat elindul.
Hogyan működik a támadás?
A hibát Simone Margaritelli fedezte fel, aki hosszú ideig küzdött azért, hogy a biztonsági rést kellően komolyan vegyék. A támadók képesek távolról, hitelesítés nélkül kihasználni a sebezhetőséget, akár egy egyszerű UDP csomag küldésével a 631-es portra. Hálózaton belül zeroconf, mDNS vagy DNS-SD hirdetések hamisításával is végrehajtható a támadás.
A Red Hat lépésről lépésre bemutatja, hogyan zajlik a támadási folyamat:
- A cups-browsed szolgáltatás kézzel engedélyezve vagy el van indítva.
- A támadónak hozzáférése van egy sérülékeny szerverhez:
- nyilvános internetes hozzáférés vagy
- belső hálózati hozzáférés esetén.
- A támadó egy rosszindulatú IPP (Internet Printing Protocol) szervert hirdet meg, amely egy hamis nyomtatót regisztrál.
- Az áldozat megpróbál nyomtatni erről az eszközről.
- A támadó tetszőleges kódot futtat az áldozat gépén.
Mit tehetünk?
A probléma súlyossága ellenére jó hír, hogy a Canonical és a legtöbb Linux terjesztés szállítója már kiadta a szükséges biztonsági frissítéseket az érintett csomagokhoz (cups-browsed, cups-filters, libcupsfilters és libppd). Ezek a frissítések hamarosan elérhetővé válnak minden támogatott Ubuntu kiadáshoz.
Tehát a megoldások:
- Távolítsd el a cups-browsed szolgáltatást, ha nincs rá szükséged.
- Frissítsd a CUPS csomagot a rendszereden.
- Ha a rendszered nem frissíthető, blokkolj minden forgalmat a 631-es UDP portra és a DNS-SD forgalmat.
Aki tűzfalat vagy NAT routert használ, valószínűleg sosem volt kitéve a támadásnak. Azok számára pedig, akiknek automatikus frissítések vannak engedélyezve, a frissítések már települtek is. Azonban érdemes egy újraindítást végezni a gépen, hogy minden változás érvénybe lépjen. A Margaritelli által feltárt probléma rávilágít arra, hogy mennyire fontos a nyomtatási szolgáltatások biztonságos beállítása, különösen nyilvános vagy nagyvállalati hálózatok esetén.
Javított verziók
A sebezhetőségek egy távoli, hitelesítést nem igénylő támadó számára lehetővé teszik, hogy meglévő nyomtatók IPP URL-jeit rosszindulatúra cserélje, vagy új nyomtatókat telepítsen. Ez lehetővé teszi kártékony kód végrehajtását a nyomtatási folyamat során.
- CVE-2024-47176: A cups-browsed ≤ 2.0.1 szolgáltatás az UDP INADDR_ANY:631 porton hallgat, megbízik bármely csomagban, ami egy támadó által vezérelt URL-re küld IPP kéréseket.
- CVE-2024-47076: A libcupsfilters ≤ 2.1b1 verziójában a cfGetPrinterAttributes5 függvény nem ellenőrzi vagy tisztítja az IPP szerver által visszaküldött attribútumokat, amelyek kártékony adatokat szolgáltathatnak a CUPS rendszer többi részébe.
- CVE-2024-47175: A libppd ≤ 2.1b1 verziójában a ppdCreatePPDFromIPP2 függvény nem ellenőrzi vagy tisztítja az IPP attribútumokat, amikor azokat egy ideiglenes PPD fájlba írja, lehetővé téve rosszindulatú adatok beszúrását.
- CVE-2024-47177: A cups-filters ≤ 2.0.1 verziójában a foomatic-rip lehetőséget biztosít tetszőleges parancsok végrehajtására a FoomaticRIPCommandLine PPD paraméteren keresztül.
Érintett rendszerek
A CUPS és különösen a cups-browsed szolgáltatás szinte minden UNIX alapú rendszerre csomagolva van, ideértve:
- A legtöbb GNU/Linux disztribúciót
- Egyes BSD rendszereket
- Google Chromium / ChromeOS
- Oracle Solaris
Frissítésre fel!
Javasolt, hogy frissítse az összes csomagot, majd indítsa újra a CUPS démont - Linux Mint, Ubuntu, Debian alatt így::
sudo apt update && sudo apt upgrade sudo systemctl restart cups.service
Ha ez nem lehetséges, akkor az érintett komponenseket célzottan érdemes frissíteni:
sudo apt update && sudo apt install --only-upgrade cups-browsed cups-filters cups-filters-core-drivers libcupsfilters2t64 libppd2 libppd-utils ppdc sudo systemctl restart cups
Enyhítési lépések
A következő lépések megakadályozzák a nyomtatási szerver új hálózati nyomtatók észlelését, és megállítják a kártékony PPD fájlok befecskendezését:
- Szerkessze az /etc/cups/cups-browsed.conf fájlt.
- Keresse meg a BrowseRemoteProtocols konfigurációs opciót.
- Állítsa az értéket none-ra (az alapértelmezett érték „dnssd cups”).
- Indítsa újra a cups-browsed szolgáltatást a következő paranccsal:
systemctl restart cups-browsed.
Ezek a lépések segítenek csökkenteni a támadási felületet, amíg a szükséges biztonsági frissítéseket alkalmazzák.
További információk
https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/
https://github.com/OpenPrinting/libcupsfilters/security/advisories/GHSA-w63j-6g73-wmg5
https://github.com/OpenPrinting/libppd/security/advisories/GHSA-7xfx-47qg-grp6
https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8
https://github.com/OpenPrinting/cups-filters/security/advisories/GHSA-p9rh-jxmq-gq47
https://ubuntu.com/security/CVE-2024-47076
https://ubuntu.com/security/CVE-2024-47175
https://ubuntu.com/security/CVE-2024-47176
https://ubuntu.com/security/CVE-2024-47177
https://ubuntu.com/security/notices/USN-7041-1
https://ubuntu.com/security/notices/USN-7042-1
https://ubuntu.com/security/notices/USN-7043-1
https://ubuntu.com/security/notices/USN-7044-1
https://ubuntu.com/security/notices/USN-7045-1
https://www.cve.org/CVERecord?id=CVE-2024-47076
https://www.cve.org/CVERecord?id=CVE-2024-47175
https://www.cve.org/CVERecord?id=CVE-2024-47176
https://www.cve.org/CVERecord?id=CVE-2024-47177