Critical CVSS 9.8 Security news

Red Hat Quay flaw lets attackers plant their own signing key and read or overwrite private container images

Red Hat disclosed a critical vulnerability in the Red Hat Quay container registry on 11 November 2026. CVE-2026-123710 (CVSS 3.1 9.8) lets an unauthenticated client install its own approved, non-expiring signing key and mint tokens for any repository, so it can read private images and replace tags. A second critical flaw, CVE-2026-110697 (9.9), lets a user steal robot account tokens from other organizations. As of 12 November Red Hat lists no fixed build for the first flaw and advises blocking the /keys endpoint now.

Kyberkit editorial team · · event date · reading time 5 minutes · For admins and analysts

Critical: Red Hat Quay, CVE-2026-123710, CVSS 9.8

Key points

  • Who is affected: admins of self-hosted Red Hat Quay 3 and 5, including the Quay Operator and the mirror registry used for disconnected OpenShift installs. Red Hat says Quay.io is already fixed for CVE-2026-110697.
  • CVE-2026-123710 (9.8, no login): the service key rotation endpoint accepts an anonymous token from /v2/auth, so an attacker can install an approved key of their own and mint tokens for every repository.
  • CVE-2026-110697 (9.9, account needed): anyone allowed to create an organization with an underscore in its name can use an unescaped SQL LIKE pattern to pull robot accounts and tokens from other organizations.
  • Fixes: for CVE-2026-110697 Red Hat lists 3.9.28, 3.10.28, 3.12.24, 3.14.10, 3.15.9, 3.16.7, 3.17.7 and 3.18.3. For CVE-2026-123710 the status on 12 Nov is still 'Affected' with no fix, even though a single upstream Quay commit addresses both flaws.

Vulnerabilities: CVE-2026-123710, CVE-2026-110697

What happened

On 11 November 2026 Red Hat disclosed two critical vulnerabilities in Red Hat Quay, the container image registry that organizations run standalone, on OpenShift (Quay Operator) or as the mirror registry for Red Hat OpenShift in disconnected installs. Both were found by Dave O'Connor of Red Hat.

  • CVE-2026-123710: unauthenticated takeover of the registry's signing keys, CVSS 3.1 9.8 (CWE-1287). The attacker can mint tokens for any repository, read private images and replace tags.
  • CVE-2026-110697: robot account tokens leak across organizations through an unescaped SQL LIKE pattern, CVSS 3.1 9.9 (CWE-89). Requires an account that may create organizations.

As of 12 November Red Hat lists no fixed build for CVE-2026-123710 (status "Affected", Bugzilla entry still open) and recommends interim mitigations. Yet a single upstream commit in the Quay source fixes both flaws.

Technical details

CVE-2026-123710: service key rotation. Quay signs registry tokens with service keys and manages them through the /keys endpoint (the keyserver). According to Red Hat, the endpoint only checks that the caller's token is signed by an already approved key and carries the expected audience and issuer. It does not check that the token is a rotation credential. An anonymous token that anyone can request from /v2/auth therefore passes, and the client could pick that token's audience itself. The installed key inherits approval and can have no expiry. Quay then accepts tokens signed with it for any repository.

The upstream fix in quay/quay takes the token audience from server configuration instead of the request, requires a rotation claim bound to the specific key, rejects tokens that carry access grants, makes expiry mandatory and capped at the signing key's own expiry, and scopes key changes to the owning service.

CVE-2026-110697: robot listing. The function that lists an organization's robot accounts builds a SQL LIKE pattern from the namespace name without escaping wildcards. In LIKE, an underscore matches any single character, so a namespace called ab_c also matches another tenant's abxc. The attacker gets that tenant's robots and their decrypted tokens, and with them the ability to read, push and overwrite images. Red Hat flags the risk to CI/CD pipelines and the container supply chain.

Red Hat has not published proof-of-concept code and we do not describe the attack steps.

How CVE-2026-123710 in Red Hat Quay is exploited1. The client requests a token from /v2/auth without logging in; 2. The token passes the check on /keys and the attacker installs a non-expiring key; 3. Tokens signed with that key are valid for any repository; 4. The attacker reads private images and replaces tags, and poisoned images reach CI/CD1The client requests a token from/v2/auth without logging in2The token passes the check on /keysand the attacker installsa non-expiring key3Tokens signed with that key are validfor any repository4The attacker reads private images andreplaces tags, and poisoned imagesreach CI/CD
Simplified, based on Red Hat's description

Who is affected

Product CVE-2026-123710 CVE-2026-110697
Red Hat Quay 3 (quay-rhel8, quay-rhel9) affected, no fix listed yet affected, fixed in 3.9.28, 3.10.28, 3.12.24, 3.14.10, 3.15.9, 3.16.7, 3.17.7 and 3.18.3
Red Hat Quay 5 (quay-rhel9) affected, no fix listed yet affected, no fixed version listed
Quay.io (Red Hat service) not stated fixed
OpenShift Update Service – not affected

Red Hat says CVE-2026-123710 affects standalone installs (Podman, Docker), Quay deployed by the Operator on OpenShift, the mirror registry for Red Hat OpenShift, and any instance reachable by untrusted clients, internal registries included. Turning off anonymous access does not help: anyone with a valid account can then exploit the flaw.

How to tell if you were compromised

Red Hat recommends:

  • Search the Quay audit log for service_key_rotate and service_key_delete events with an empty expiry (expiration_date null).
  • Review the list of approved service keys for anything unknown or non-expiring.
  • Symptoms Red Hat mentions: pushes or pulls suddenly fail with "authentication required" or "unauthorized" even though credentials have not changed.

From our own practice: compare the digests of production tags with what your CI actually built, and review requests to /keys and /v2/auth in your proxy logs. Our IOC extractor pulls addresses out of logs and runs entirely in your browser. For CVE-2026-110697, look for organizations with an underscore in the name that match another organization when the underscore is treated as any character.

What to do

  1. Block /keys now at the proxy or load balancer and allow only the internal components that actually rotate keys (Red Hat's advice).
  2. Review the audit log and delete unknown approved keys. Deletion is not lasting until a fixed build is running: without step 1 the attacker can reinstall the key. Password changes and new robot tokens do not revoke a rogue key.
  3. Upgrade Quay 3 to the fixed release for your line (3.9.28 to 3.18.3, see the table). Red Hat says these fix CVE-2026-110697. Check the release notes or the CVE page to see whether they also fix CVE-2026-123710. As of 12 November Red Hat does not say so, so keep the step 1 restriction in place until it does.
  4. Until you upgrade, restrict who can create organizations with an underscore in the name, and rotate robot tokens for organizations whose names could collide (Red Hat).
  5. If you find a rogue key, treat the images in the registry as untrusted: verify digests and signatures (for example with cosign) against your CI output and rebuild anything that does not match.

You can break down the scores in our CVSS calculator.

Timeline

Timeline of CVE-2026-123710 and CVE-2026-110697 in Red Hat Quay6 Nov 2026: Red Hat opens Bugzilla entry 2568072 (CVE-2026-123710); 11 Nov 2026: Both CVEs disclosed and published in NVD; fixed Quay 3 releases listed for CVE-2026-110697; 12 Nov 2026: Still no fix listed for CVE-2026-123710; not in CISA KEV, no known exploitation6 Nov 2026Red Hat opens Bugzilla entry2568072 (CVE-2026-123710)11 Nov 2026Both CVEs disclosed andpublished in NVD; fixed Quay3 releases listed forCVE-2026-11069712 Nov 2026Still no fix listed forCVE-2026-123710; not in CISAKEV, no known exploitation
Key dates (Red Hat, NVD, CISA)

Updates

  • 12 Nov 2026 – first version of this article.

FAQ

Anonymous access is turned off. Am I safe?

No. Red Hat says disabling anonymous access does not protect you, because anyone with a valid Quay account can still exploit the flaw. What matters is who can reach the /keys endpoint.

Is rotating passwords and robot tokens enough after an incident?

No. A rogue signing key survives password resets and new robot tokens. You have to find and delete it, and until a fixed build is running the attacker can simply install it again. That is why blocking /keys comes first.

I only use Quay.io. Do I need to do anything?

Red Hat says Quay.io is already fixed for CVE-2026-110697. It does not explicitly state Quay.io's status for CVE-2026-123710. There is nothing for you to patch; keep the robot tokens your CI uses narrowly scoped and rotate them regularly.

Why 9.8 and 9.9?

CVE-2026-123710 can be exploited over the network with no login or user interaction and has full impact on confidentiality, integrity and availability. CVE-2026-110697 needs an account but breaks tenant isolation (scope changed, S:C), hence 9.9. Both scores come from Red Hat and are still marked as draft. You can break down the vectors in our CVSS calculator.

Sources

  1. Red Hat - CVE-2026-123710
  2. Red Hat - CVE-2026-110697
  3. Red Hat - Solution 7149923: unauthorized signing keys in Quay
  4. Red Hat Bugzilla - 2568072
  5. NVD - CVE-2026-123710 (CWE-1287, CVSS 9.8)
  6. GitHub quay/quay - fix for CVE-2026-110697 and CVE-2026-123710
  7. CISA - Known Exploited Vulnerabilities Catalog

Spotted a mistake? Let us know and we will correct it openly.