REDHAT-BUG-2572952: XSS

Published Nov 13, 2026
·
Updated

A reflected cross-site scripting (XSS) flaw was found in Quay's v1 registry API. The util/http.py abort() helper builds error bodies with json.dumps() without setting a Content-Type, so Flask serves them as text/html. The v1 image endpoints (endpoints/v1/registry.py) interpolate the attacker-controlled imageid URL path segment into the 404 error message, and json.dumps does not escape angle brackets. An unauthenticated attacker can craft a URL that, when visited by a logged-in Quay user, executes arbitrary JavaScript in the registry origin, which is shared with the Quay web UI and API. Exploitation requires the victim's browser to first establish a v1 session cookie on a public repository (anonymous access is enabled by default), which an attacker page can chain via successive navigations. Confirmed in Quay 3.18.2; util/http.py is unchanged in current upstream main.

Affected Software

1 affected component
Red Hat Quay=3.18.2

Event History

Nov 13, 2026
Data Sourced
via Red Hat·08:13 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

Who is exposed to this issue?

Logged-in Quay users who can be induced to visit a crafted v1 registry API URL are exposed. The affected registry origin is shared with the Quay web UI and API, so script execution occurs in that trusted origin.

2

Does exploitation require authentication or a non-default setup?

The attacker does not need to authenticate. Exploitation depends on the victim browser first obtaining a v1 session cookie for a public repository; anonymous access to public repositories is enabled by default, and an attacker can chain the required browser navigations.

3

What attacker-controlled input reaches the vulnerable response?

The image_id URL path segment in v1 image endpoints is included in a 404 error message. Because the error body can be served as text/html and angle brackets are not escaped, a crafted path can inject executable script.

4

Which version is confirmed affected?

The flaw was confirmed in Quay 3.18.2. The affected util/http.py behavior is also stated to be unchanged in current upstream main.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203