<Vulnerability name="CVE-2026-123710">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Critical</ThreatSeverity>
    <PublicDate>2026-11-11T14:00:00</PublicDate>
    <Bugzilla id="2568072" url="https://bugzilla.redhat.com/show_bug.cgi?id=2568072" xml:lang="en:us">
quay: Red Hat Quay: unauthenticated registry signing-key takeover via service key rotation
    </Bugzilla>
    <CVSS3 status="verified">
        <CVSS3BaseScore>9.8</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-1287</CWE>
    <Details xml:lang="en:us" source="Mitre">
A flaw was found in Red Hat Quay. An unauthenticated client can obtain an anonymous registry token with an audience it controls, present that token to the service key rotation endpoint, and install its own approved signing key with no expiry. Registry tokens signed with that key are accepted for any repository, allowing read and write access to private images and replacement of repository tags.
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in Red Hat Quay. An unauthenticated client can obtain an anonymous registry token with an audience it controls, present that token to the service key rotation endpoint, and install its own approved signing key with no expiry. Registry tokens signed with that key are accepted for any repository, allowing read and write access to private images and replacement of repository tags.
    </Details>
    <Statement xml:lang="en:us">
This Critical flaw in Red Hat Quay's service key server allows an unauthenticated attacker to take over registry token signing. Key rotation authenticates the caller only by verifying that the JWT is signed by an already approved service key with the expected audience and issuer, without checking that the token is a rotation credential. An anonymous token minted by /v2/auth satisfies that check. Installed keys inherit approval and can be created without an expiry, so forged registry tokens are accepted for any repository. Deployments where /keys is reachable by untrusted clients are affected.
    </Statement>
    <Acknowledgement xml:lang="en:us">
This issue was discovered by Dave O'Connor (Red Hat).
    </Acknowledgement>
    <Mitigation xml:lang="en:us">
Restrict access to the /keys endpoint at the proxy or load balancer so only trusted internal components can reach it. Review audit logs for service_key_rotate and service_key_delete events with a null expiration_date, and remove any unrecognised approved service keys. Deleting a rogue key is not durable until a fixed build is deployed, because the anonymous request can install a new key.
    </Mitigation>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.10::el8">
        <ProductName>Red Hat Quay 3.10</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99025">RHSA-2026:99025</Advisory>
        <Package name="quay/quay-rhel8">quay/quay-rhel8:1793993674</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.12::el8">
        <ProductName>Red Hat Quay 3.12</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99027">RHSA-2026:99027</Advisory>
        <Package name="quay/quay-rhel8">quay/quay-rhel8:1793993854</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.14::el8">
        <ProductName>Red Hat Quay 3.14</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99024">RHSA-2026:99024</Advisory>
        <Package name="quay/quay-rhel8">quay/quay-rhel8:1793993848</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.15::el8">
        <ProductName>Red Hat Quay 3.15</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99023">RHSA-2026:99023</Advisory>
        <Package name="quay/quay-rhel8">quay/quay-rhel8:1793993771</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.16::el9">
        <ProductName>Red Hat Quay 3.16</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99022">RHSA-2026:99022</Advisory>
        <Package name="quay/quay-rhel9">quay/quay-rhel9:1793993799</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.17::el9">
        <ProductName>Red Hat Quay 3.17</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99026">RHSA-2026:99026</Advisory>
        <Package name="quay/quay-rhel9">quay/quay-rhel9:1793993778</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.18::el9">
        <ProductName>Red Hat Quay 3.18</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99019">RHSA-2026:99019</Advisory>
        <Package name="quay/quay-rhel9">quay/quay-rhel9:1793993890</Package>
    </AffectedRelease>
    <AffectedRelease cpe="cpe:/a:redhat:quay:3.9::el8">
        <ProductName>Red Hat Quay 3.9</ProductName>
        <ReleaseDate>2026-11-11T00:00:00Z</ReleaseDate>
        <Advisory type="RHSA" url="https://access.redhat.com/errata/RHSA-2026:99021">RHSA-2026:99021</Advisory>
        <Package name="quay/quay-rhel8">quay/quay-rhel8:1793993730</Package>
    </AffectedRelease>
    <PackageState cpe="cpe:/a:redhat:mirror_registry:2">
        <ProductName>mirror registry for Red Hat OpenShift 2</ProductName>
        <FixState>Affected</FixState>
        <PackageName>openshift/mirror-registry-rhel8</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:quay:5">
        <ProductName>Red Hat Quay 5</ProductName>
        <FixState>Affected</FixState>
        <PackageName>quay/quay-rhel9</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-123710
https://nvd.nist.gov/vuln/detail/CVE-2026-123710
https://access.redhat.com/solutions/7149923
    </References>
</Vulnerability>