Title: Red Hat Quay Registry Token Forgery (CVE-2026-123710): Private Container Images Readable and Overwritable Registry-Wide
Summary:
Red Hat has disclosed a critical flaw in its Quay container registry, tracked as CVE-2026-123710 and scored 9.8 by both Red Hat and cve.org (vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, CWE-1287). The weakness sits in Quay’s service key server: a call to replace a trusted signing key is accepted whenever the accompanying JWT carries the signature of an already approved key with the right audience and issuer, and the server never checks that the token actually authorizes a rotation. An anonymous token handed out by /v2/auth clears that bar — its audience is chosen by the caller — so a client with no account at all (or any account holder, if anonymous access is disabled) can register an attacker-controlled signing key that never expires. Quay then accepts tokens signed with that key for every repository: private images can be read out, including any secrets stored inside them, and tampered images overwrite the originals, reaching every system that later pulls them. A planted key also survives restarts and can remove the keys live instances depend on, so routine push and pull traffic starts failing until it is removed. Any deployment where untrusted clients can reach the /keys endpoint is exposed, and Red Hat lists every Quay 3 and Quay 5 version as affected — standalone installs, the Quay Operator on OpenShift, and the mirror registry for Red Hat OpenShift — with fixed builds published for eight Quay 3 branches. Red Hat credits Dave O’Connor with the discovery, and the bug report traces the faulty logic back to Quay’s first public commit. Until an update is running, Red Hat advises blocking /keys so only trusted internal components can reach it, combing audit logs for service_key_rotate/service_key_delete events with a null expiration_date, and removing unrecognized approved service keys — wiping a rogue key only sticks after the fixed build is in place, since the same anonymous request can install a fresh one. A second flaw disclosed at the same time, CVE-2026-110697 (CVSS 9.9), lets any user who can create a namespace use an unescaped underscore in an SQL LIKE query to match another tenant’s namespace and harvest that tenant’s robot account tokens; Red Hat says Quay.io is already fixed for that one.
References: