There's been talk of this unauthenticated RCE vulnerability coming with a CVSS 9.9 rating but none of the technical details were publicly known until it was made public just now at the top of the hour. Simone Margaritelli discovered this vulnerability and has shared a write-up around this potentially very impactful Linux vulnerability.
This vulnerability, fortunately, doesn't affect the Linux kernel but rather CUPS... The print server commonly used on Linux systems and other platforms.
"A remote unauthenticated attacker can silently replace existing printers’ (or install new ones) IPP urls with a malicious one, resulting in arbitrary command execution (on the computer) when a print job is started (from that computer)."
...
This remote code execution issue can be exploited across the public Internet via a UDP packet to port 631 without needing any authentication, assuming the CUPS port is open through your router/firewall. LAN attacks are also possible via spoofing zeroconf / mDNS / DNS-SD advertisements.
Besides CUPS being used on Linux distributions, it also affects some BSDs, Oracle Solaris, Google Chrome OS, and others.
As of writing there is no Linux fix available for this high profile security issue. In the meantime it's recommended to disable and remove the "cups-browsed" service, updating CUPS, or at least blocking all traffic to UDP port 631.
I'm always befuddled how these things end up public on the internet. (I'm not really.)
Like, it's not like the printer is the one poking holes in your firewall while you sleep.*
*If it is, then you should feel great shame, throw away anything more complicated than a pair of dull scissors, and get a job digging holes then filling them back in.
Ya I was worried this was going to affect something like OpenWRT and a lot of shit was about to get fucked over. CUPS? 99.9% of people are gonna have that port closed on their router. Sure this is important to fix but a 9.9? Nah
Blue check on Twitter... Someone who's paying $10/mo to the world's richest person has an overinflated sense of importance... well... What're you gonna do?
Wtf???? "All GNU/Linux"???? This guy made me think Linus personally had to descend to Kernel-land and fix perhaps the most horrendous memory bug in existence. But no, surely CUPS IS ON EVERY MACHINE, RIGHT??????????
It's not that simple. It's not even the OP's or researcher's fault for blowing it out of proportion. In summary, the junor researcher got told it was a 9.9 vuln by a third party, then he shared this news because they got their first 9.9 vuln, news spread around and everyone got hyped because the details weren't available to everyone, just that it was a 9.9.
While I'm glad that there are people who do this work and certainly appreciate it. I also read his tweets and this person did seem to come off as a bit annoying. Like I get it. Security is important. However, things not moving as fast as you like is no reason to act like that.
Yup, called it: non-mandatory piece of software. Plus you have to have been dumb enough to deliberately forward the port at your router for the general-case attack, and you have to print something (which I do maybe twice a month) for any command injection to take place.
This does need to be patched, since there is some risk if you have CUPS running and another device on your LAN has already been compromised, but it's definitely not the earthshattering kaboom the discoverer misrepresented it as.
No port forwarding needed when the ISP provides a proper IPv6 subnet.
Normal IPv6 router advertisement will then provide a public reachable address for every IPv6 capable device.
But with the size of IPv6 it makes searching for that not really easy, so it only a small attack vector.
My router will still block all ports not explicitly allowed for the hosts regardless of protocol, it's a firewall after all and not just NAT. Just because the host addressable doesn't mean its ports are reachable.
Hmm, never had cups-browsed enabled as I do not need network printing with LDAP or legacy cups. Discovery using DNS-SD/mDNS and driverless printing work perfectly fine without it.
I am not sure if the driverless discovery ever can generate a PPD with arbitrary commands.