News for hackers. Stuff that matters.
Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by lambdaxyzw on Thursday April 11, 2024 @02:38PM (#40005350)
> Two do not expose zmq to untrusted networks

one: Is this documented somewhere? I use zeromq for the (internal, but by design usually accessible on the public internet) API of my project

two: what happened to zero trust? Every network is untrusted.

Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by smueller1234 on Thursday April 11, 2024 @03:31PM (#40005898)
Zeromq will have changed a lot since then, but some time in the 2010s, I prototyped a system using it (which was going to be a major production system in a large tech company) and had weird unexpected blocking issues with it. To debug, I sat down to read a bunch of the zeromq code, just to realize that it was using assert() to handle wire protocol errors (unrelated to the blocking bug).

I've never dropped a piece of software as quickly as that.

Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by rcxdude on Thursday April 11, 2024 @05:06PM (#40006805)
More or less my experience as well. Asserting on bad user configuration, asserting on OS errors that weren't in a particular list. I followed their recommendation of having a "small, simple, reliable" broker and it kept crashing on asserts in the library at the worst times.
Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by pstrateman on Thursday April 11, 2024 @03:23PM (#40005824)
I don't know if the ZMQ people have ever admitted to it, but you'd be crazy to expose ZMQ to the public internet.
Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by mynameisvlad on Thursday April 11, 2024 @04:15PM (#40006373)
This is the equivalent to "trust me bro".

Do you have any specific reasons why this is a bad idea? Especially if it's been secured, as the article implies it was.

Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by smueller1234 on Friday April 12, 2024 @01:29AM (#40009653)
See my response to a sibling of the comment you're responding to. The library had shocking code quality issues. It's unlikely that they're all peachy now.

The other side of this is that while Pieter's writing was marketing genius, it was also woefully understating the complexity of any practical use case. The way I tried to summarize that to folks who were keen to try zeromq then was that they should start at the back of the book with the most complex example, and that's by far the simplest setup that they could hope to end up with once they start thinking about putting something into production. And everything leading up to that - a book no less - was exclusively educational/toy use cases.

Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by theamk on Thursday April 11, 2024 @04:17PM (#40006383)
I normally assume that any software which is not specifically designed to be exposed to internet, should not be exposed.

Security is hard, and proxies/VPNs are cheap.

Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by samtheprogram on Thursday April 11, 2024 @02:53PM (#40005524)
> internal, but by design usually accessible on the public internet

Your API can be accessible obviously, but put ZeroMQ behind a firewall so only the API server can reach it.

If it’s running on the same server, at least block the port ZeroMQ is listening on from the outside world.

Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by fragmede on Thursday April 11, 2024 @03:11PM (#40005704)
People make fun of Kubernetes or "resume driven development" for making things more complex than they need to be, but this is why you want mTLS via a sidecar with short auto renewed certificates on a mesh inside your distributed system of a operating stack, when the system is big enough to justify that complexity. Something the size of, like, Airbnb should have that.
Re:I discovered a 9.8 critical exploit in ZeroMQ with mostly... by theamk on Thursday April 11, 2024 @04:14PM (#40006366)
Or a wireguard VPN. Or even just socat with mTLS inside systemd.

There are easier ways to achieve that than kubernetes with sidecar mesh.