A critical set of unauthenticated Remote Code Execution (RCE) vulnerabilities in CUPS, affecting all GNU/Linux systems and potentially others, was disclosed today. These vulnerabilities allow a remote…
Exploitation involves sending a malicious UDP packet to port 631 on the target, directing it to an attacker-controlled IPP server.
Okay, so at least until this is patched, it would be a good idea to shut down any CUPS-related process that's listening on port 631, and avoid interaction with untrusted or potentially compromised print servers.
Either of these commands will list such processes:
$ sudo lsof -i :631
$ sudo fuser -v 631/tcp 631/udp
I don't want to diminish the urgency of this vulnerability, but it is worth noting that "affecting all GNU/Linux systems" does not mean that every affected system is actually running the vulnerable code. Some installations don't run print services and don't ever communicate with printers.
Also, I suspect that the author's use of "GNU" in that warning is misleading, potentially giving a false sense of security. (Sadly, a certain unfortunate meme has led many people to think that all Linux systems are GNU systems, and the author appears to be among them.) I don't see any reason to think musl builds of CUPS are immune, for example, so I don't assume my Alpine systems are safe just because they are not GNU/Linux.
That refers to the fact that printer advertisements can contain lies: When you see a familiar printer name appear on a network, it could always be an impostor secretly pointing to the address of a malicious device.
So my first advice stands: Avoid interaction with untrusted or potentially compromised print servers.
To be clear, when I say "interaction", I don't just mean printing to them. I mean any interaction at all. Even just browsing a network for printers could potentially mean your system contacts the devices at the advertised addresses, and receives data from them. This Qualys report doesn't make clear whether this kind of interaction is safe, so I have to assume for now that it is not.
How do you avoid interaction if it's being done automatically by your machine when you open up a print dialog, and if malicious servers can use the same names as legit printers?