Remix.run Logo
simonw an hour ago

I expect they have root on their machines so they can install packages etc.

The containers are then firewalled at the network level: they are only allowed to talk to one IP, which is another server that runs an HTTP/HTTPS proxy which controls what HTTP verbs they can use.

Turns out that proxy is configured with some additional rules, like allowing more verbs to that Azure blob domain.

The failure here is in the proxy configuration. Giving agents root in a container feels safe to me, provided that container is properly network isolated (which this one is not thanks to the loose proxy.)

OpenAI also need to be VERY confident that there are no container escapes, which is a high bar given how good these models are at finding new zero-days!

mike_hearn an hour ago | parent | next [-]

But that wouldn't work, right? If the proxy is on another server then editing their own /etc/hosts wouldn't change the proxy's behavior. So the proxy has to be colocated and reading the same /etc/hosts that they're editing. But that would mean it's running within the same userns/pid domain as the agents, so at that point they don't even need to edit /etc/hosts, they could just use the network directly.

And the agent says ABS is not handled by the proxy, it's listed in NO_PROXY so they should connect directly.

At any rate it's easy to let agents install packages without giving them root. I use a small SUID binary that just invokes `apt install` after checking that the given argument isn't a file path, which I think is sufficient (using sudo to whitelist a prefix allows an agent to create a .deb themselves and then install it directly via apt, similar issues exist for other package managers).

dap an hour ago | parent [-]

My interpretation of the above is that the proxy received a request for the IP of the server the agent wants to reach but with a host header pointing to a different, allowed server. The proxy does not verify that they match and so erroneously allows the request.

mig39 43 minutes ago | parent | prev [-]

I think the proxy must be on the same machine, otherwise why are they suggesting editing the /etc/hosts file?