{"id":"CVE-2026-15927","state":"PUBLISHED","title":"Quay: mirror-registry: ssrf: repo-level mirror accepts external_reference without url validation","description":"A flaw was found in Red Hat Quay's repository-level mirror configuration\nfeature. The POST and PUT handlers in endpoints/api/mirror.py accept an\nexternal_reference parameter without SSRF validation, unlike the\norganization-level mirror handlers which apply validate_external_registry_url().\nA repository administrator can supply a crafted hostname that causes the Quay\nmirror worker to make requests via Skopeo to internal network services, cloud\nmetadata endpoints, or other resources not intended to be reachable from the\nQuay application.","publishedAt":"2026-07-21T04:45:27.751Z","updatedAt":"2026-09-22T17:59:34.381Z","severity":{"score":6.8,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N","source":"redhat"},"assigner":"redhat","products":["Red Hat Red Hat Quay 3.10","Red Hat Red Hat Quay 3.12","Red Hat Red Hat Quay 3.14","Red Hat Red Hat Quay 3.15","Red Hat Red Hat Quay 3.16","Red Hat Red Hat Quay 3.17","Red Hat Red Hat Quay 3.9","Red Hat mirror registry for Red Hat OpenShift 2"],"affected":[{"vendor":"Red Hat","product":"Red Hat Quay 3.10","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1786395065","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.10::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.12","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1786170635","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.12::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.14","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1788593843","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.14::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.15","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1788191755","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.15::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.16","packageName":"quay/quay-rhel9","defaultStatus":"affected","versions":[{"version":"1789563753","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.16::el9"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.17","packageName":"quay/quay-rhel9","defaultStatus":"affected","versions":[{"version":"1786181981","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.17::el9"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.9","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1785950004","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.9::el8"]},{"vendor":"Red Hat","product":"mirror registry for Red Hat OpenShift 2","packageName":"openshift/mirror-registry-rhel8","defaultStatus":"affected","collectionURL":"https://access.redhat.com/downloads/content/package-browser/","cpes":["cpe:/a:redhat:mirror_registry:2"]}],"references":["https://access.redhat.com/errata/RHSA-2026:50931","https://access.redhat.com/errata/RHSA-2026:52968","https://access.redhat.com/errata/RHSA-2026:53520","https://access.redhat.com/errata/RHSA-2026:54395","https://access.redhat.com/errata/RHSA-2026:63307","https://access.redhat.com/errata/RHSA-2026:69255","https://access.redhat.com/errata/RHSA-2026:70267","https://access.redhat.com/security/cve/CVE-2026-15927","https://bugzilla.redhat.com/show_bug.cgi?id=2501256"],"weaknesses":["CWE-918"],"ingestedAt":"2026-10-29T20:11:00.674Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/15xxx/CVE-2026-15927.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-15927","state":"PUBLISHED","datePublished":"2026-07-21T04:45:27.751Z","dateUpdated":"2026-09-22T17:59:34.381Z","assignerShortName":"redhat","assignerOrgId":"53f830b8-0a3f-465b-8143-3b8a9948e749","dateReserved":"2026-07-16T06:31:41.405Z"},"containers":{"cna":{"title":"Quay: mirror-registry: ssrf: repo-level mirror accepts external_reference without url validation","descriptions":[{"lang":"en","value":"A flaw was found in Red Hat Quay's repository-level mirror configuration\nfeature. The POST and PUT handlers in endpoints/api/mirror.py accept an\nexternal_reference parameter without SSRF validation, unlike the\norganization-level mirror handlers which apply validate_external_registry_url().\nA repository administrator can supply a crafted hostname that causes the Quay\nmirror worker to make requests via Skopeo to internal network services, cloud\nmetadata endpoints, or other resources not intended to be reachable from the\nQuay application."}],"affected":[{"vendor":"Red Hat","product":"Red Hat Quay 3.10","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1786395065","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.10::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.12","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1786170635","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.12::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.14","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1788593843","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.14::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.15","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1788191755","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.15::el8"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.16","packageName":"quay/quay-rhel9","defaultStatus":"affected","versions":[{"version":"1789563753","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.16::el9"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.17","packageName":"quay/quay-rhel9","defaultStatus":"affected","versions":[{"version":"1786181981","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.17::el9"]},{"vendor":"Red Hat","product":"Red Hat Quay 3.9","packageName":"quay/quay-rhel8","defaultStatus":"affected","versions":[{"version":"1785950004","status":"unaffected","lessThan":"*","versionType":"rpm"}],"collectionURL":"https://catalog.redhat.com/software/containers/","cpes":["cpe:/a:redhat:quay:3.9::el8"]},{"vendor":"Red Hat","product":"mirror registry for Red Hat OpenShift 2","packageName":"openshift/mirror-registry-rhel8","defaultStatus":"affected","collectionURL":"https://access.redhat.com/downloads/content/package-browser/","cpes":["cpe:/a:redhat:mirror_registry:2"]}],"references":[{"url":"https://access.redhat.com/errata/RHSA-2026:50931","name":"RHSA-2026:50931","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2026:52968","name":"RHSA-2026:52968","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2026:53520","name":"RHSA-2026:53520","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2026:54395","name":"RHSA-2026:54395","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2026:63307","name":"RHSA-2026:63307","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2026:69255","name":"RHSA-2026:69255","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2026:70267","name":"RHSA-2026:70267","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-15927","tags":["vdb-entry","x_refsource_REDHAT"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2501256","name":"RHBZ#2501256","tags":["issue-tracking","x_refsource_REDHAT"]}],"metrics":[{"other":{"content":{"value":"Important","namespace":"https://access.redhat.com/security/updates/classification/"},"type":"Red Hat severity rating"}},{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":6.8,"baseSeverity":"MEDIUM","confidentialityImpact":"HIGH","integrityImpact":"NONE","privilegesRequired":"HIGH","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N","version":"3.1"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-918","description":"Server-Side Request Forgery (SSRF)","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"redhat","orgId":"53f830b8-0a3f-465b-8143-3b8a9948e749","dateUpdated":"2026-09-22T17:59:34.381Z"},"datePublic":"2026-07-16T00:00:00.000Z","x_redhatCweChain":"CWE-918: Server-Side Request Forgery (SSRF)","workarounds":[{"lang":"en","value":"Restrict network egress from Quay mirror worker pods/containers using network\npolicies or firewall rules to block access to internal network ranges\n(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and cloud metadata endpoints\n(169.254.169.254, metadata.google.internal). Limit repository creation and\nadmin privileges to trusted users via Quay's RBAC configuration. If\nrepository-level mirroring is not required, disable the feature or restrict\naccess to the mirror API endpoints through a reverse proxy."}],"timeline":[{"lang":"en","time":"2026-02-13T00:00:00.000Z","value":"Reported to Red Hat."},{"lang":"en","time":"2026-07-16T00:00:00.000Z","value":"Made public."}],"credits":[{"lang":"en","value":"This issue was discovered by Martin Brodeur and Shaon Hossain (Red Hat)."}],"x_generator":{"engine":"cvelib 1.8.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-21T13:12:11.259508Z","id":"CVE-2026-15927","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-21T14:55:42.159Z"}}]}}}