{"id":"CVE-2025-54388","aliases":["GHSA-x4rx-4gw3-53p4","GO-2025-3830"],"url":"https://o3.security/vulnerability/CVE-2025-54388","summary":"Moby's Firewalld reload makes published container ports accessible from remote hosts","details":"Moby is an open source container framework developed by Docker Inc. that is distributed as Docker Engine, Mirantis Container Runtime, and various other downstream projects/products. The Moby daemon component (dockerd), which is developed as [moby/moby](https://github.com/moby/moby) is commonly referred to as Docker, or Docker Engine.\n\nFirewalld is a daemon used by some Linux distributions to provide a dynamically managed firewall. When Firewalld is running, Docker uses its iptables backend to create rules, including rules to isolate containers in one bridge network from containers in other bridge networks.\n\n### Impact\n\nThe iptables rules created by Docker are removed when firewalld is reloaded using, for example \"firewall-cmd --reload\", \"killall -HUP firewalld\", or \"systemctl reload firewalld\".\n\nWhen that happens, Docker must re-create the rules. However, in affected versions of Docker, the iptables rules that prevent packets arriving on a host interface from reaching container addresses are not re-created.\n\nOnce these rules have been removed, a remote host configured with a route to a Docker bridge network can access published ports, even when those ports were only published to a loopback address. Unpublished ports remain inaccessible.\n\nFor example, following a firewalld reload on a Docker host with address `192.168.0.10` and a bridge network with subnet `172.17.0.0/16`, running the following command on another host in the local network will give it access to published ports on container addresses in that network: `ip route add 172.17.0.0/16 via 192.168.0.10`.\n\nContainers running in networks created with `--internal` or equivalent have no access to other networks. Containers that are only connected to these networks remain isolated after a firewalld reload.\n\nWhere Docker Engine is not running in the host's network namespace, it is unaffected. Including, for example, Rootless Mode, and Docker Desktop.\n\n### Patches\n\nMoby releases older than 28.2.0 are not affected. A fix is available in moby release 28.3.3.\n\n### Workarounds\nAfter reloading firewalld, either:\n- Restart the docker daemon,\n- Re-create bridge networks, or\n- Use rootless mode.\n\n### References\nhttps://firewalld.org/\nhttps://firewalld.org/documentation/howto/reload-firewalld.html","published":"2025-07-30T13:24:06.849Z","modified":"2026-08-12T03:51:14.533911525Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"Go","name":"github.com/docker/docker","fixedVersion":"28.3.3"}],"fix":{"url":"https://github.com/moby/moby/commit/bea959c7b793b32a893820b97c4eadc7c87fabb0","label":"moby/moby@bea959c"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/54xxx/CVE-2025-54388.json"},{"type":"ADVISORY","url":"https://github.com/moby/moby/security/advisories/GHSA-x4rx-4gw3-53p4"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-54388"},{"type":"FIX","url":"https://github.com/moby/moby/commit/bea959c7b793b32a893820b97c4eadc7c87fabb0"},{"type":"FIX","url":"https://github.com/moby/moby/pull/50506"},{"type":"PACKAGE","url":"https://github.com/moby/moby"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:14.533911525Z"}}