Bizonyos körülmények között a támadók láncba fűzve kihasználhatják a CUPS nyílt forráskódú nyomtatási rendszer több komponensének sebezhetőségét, hogy távoli kódfuttatást hajtsanak végre a sebezhető számítógépeken. A lehetőségre Simone Margaritelli lett figyelmes, aki postjában részletesen leírja, hogyan lehet a CVE-2024-47076 (libcupsfilters), CVE-2024-47175 (libppd), CVE-2024-47176 (cups-browsed) és CVE-2024-47177 (cups-filters) sérülékenységeket kihasználni távoli kódfuttatásra Linux rendszereken.
A CUPS (Common UNIX Printing System) a legszélesebb körben használt nyomtatási rendszer Linuxon. Ezen felül általában támogatott egyéb Unix-szerű operációs rendszert futtató eszközökön is, mint például FreeBSD-en, NetBSD-en és OpenBSD-en is. A CUPS egy moduláris nyomtatási rendszer, ami lehetővé teszi a számítógépek számára, hogy nyomtatószerverként üzemeljenek. Egy CUPS-ot futtató eszköz olyan host, ami képes nyomtatási feladatokat fogadni kliens számítógépektől, feldolgozni azokat, és utána továbbítani a megfelelő nyomtatóhoz.
Az egyik komponense a cups-browsed daemon, amely a helyi hálózaton keres hirdetett hálózati vagy megosztott nyomtatókat, és elérhetővé teszi azokat a gép számára nyomtatásra. Ha ez a komponens engedélyezve van, (alapértelmezetten nincsen) akkor a 631-es UDP porton figyel, emellett pedig lehetővé teszi bármely eszköz számára a hálózaton, hogy új nyomtatót hozzon létre. Egy kártékony PostScript Printer Description (PPD) nyomtató létrehozásával és azt egy sérülékeny cups-browsed szolgáltatásnak címzett manuális meghirdetésével a távoli gép automatikusan telepíti a kártékony nyomtatót, elérhetővé téve a nyomtatásra. Ha ezután a felhasználó véletlenül erre az új nyomtatóra küld ki feladatot, akkor a PPD-ben elhelyezett kártékony kód lefutásra kerül.
Bár ez így egy működőképes RCE chain, fontos megjegyezni, hogy a sikeres támadáshoz a támadónak több akadályt is le kell küzdenie a tényleges távoli kódfuttatáshoz. Először is, a célzott rendszeren a cups-browsed daemon-nak engedélyezve kell lennie, ami alapértelmezetten nincsen. Ezen felül a támadónak valahogyan rá kell vennie a felhasználót, hogy a rosszindulatú nyomtatót használja, amely előtte nem volt látható.
A javítások jelenleg fejlesztés alatt állnak, addig is elérhető néhány mérséklő óvintézkedés. A következő parancsok futtatásával leállítható a cups-browsed szolgáltatás, és annak újraindításkori automatikus indulása, ezzel megszakad a kihasználási chain:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Az alábbi paranccsal ellenőrizhető, hogy a cups-browsed fut-e a rendszeren:
sudo systemctl status cups-browsed
Ha az eredmény “Active: inactive (dead)” állapotot mutat, akkor a kihasználási lánc sikeresen megszakadt, és a rendszer nem sebezhető. Ha az eredmény “running” vagy “enabled” állapotot jelez, és a BrowseRemoteProtocols direktíva “cups” értéket tartalmaz az [/]etc[/]cups[/]cups-browsed.conf konfigurációs fájlban, akkor a rendszer sebezhető.