Описание
A flaw was found in pulpcore's content serving application. Files uploaded to Pulp file-type repositories are served with their original content type (e.g., text/html for .html files, image/svg+xml for .svg files) and without a Content-Disposition: attachment header when using local filesystem storage. An authenticated user or attacker with content upload permissions can upload a specially crafted HTML or SVG file containing JavaScript, which executes in the browser of any user who visits the file URL, resulting in stored cross-site scripting (XSS) in the context of the host application.
Отчет
Red Hat Product Security has assessed this issue as a Moderate severity vulnerability. This vulnerability affects pulpcore's content serving application, which is an aiohttp process separate from the Django REST API. The confidentiality and integrity impact is limited because the session cookie in the host application (Foreman/Satellite) is set with the HttpOnly attribute, which prevents direct session token theft via JavaScript. The attacker's script can read visible page content and make authenticated API requests on behalf of the victim through the browser, but cannot exfiltrate the session itself or gain persistent access beyond the victim's active browser session. There is no availability impact.
Меры по смягчению последствий
If immediate update is not possible, administrators can add security headers to the Apache reverse proxy configuration for the /pulp/content/ path. On Satellite, add the following to the Apache configuration (e.g., via a custom .conf file in /etc/httpd/conf.d/ or via a Puppet override):
This forces all content downloads rather than inline rendering, and blocks script execution even if Content-Disposition is somehow bypassed.
After applying, restart Apache: systemctl restart httpd
Alternatively, restrict file upload permissions in Satellite to only trusted users who require content management capabilities.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-24/hub-rhel8 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-25/hub-rhel8 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-26/hub-rhel9 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-27/hub-rhel9 | Not affected | ||
| Red Hat Ansible Automation Platform 2 | python3.11-pulpcore | Not affected | ||
| Red Hat Ansible Automation Platform 2 | python3.12-pulpcore | Not affected | ||
| Red Hat Ansible Automation Platform 2 | python3x-pulpcore | Not affected | ||
| Red Hat Ansible Automation Platform 2 | python-pulpcore | Not affected | ||
| Red Hat Satellite 6 | python3.12-pulpcore | Affected | ||
| Red Hat Satellite 6 | python-pulpcore | Affected |
Показывать по
Дополнительная информация
Статус:
EPSS
5.4 Medium
CVSS3
Связанные уязвимости
A flaw was found in pulpcore's content serving application. Files uploaded to Pulp file-type repositories are served with their original content type (e.g., text/html for .html files, image/svg+xml for .svg files) and without a Content-Disposition: attachment header when using local filesystem storage. An authenticated user or attacker with content upload permissions can upload a specially crafted HTML or SVG file containing JavaScript, which executes in the browser of any user who visits the file URL, resulting in stored cross-site scripting (XSS) in the context of the host application.
A flaw was found in pulpcore's content serving application. Files uploaded to Pulp file-type repositories are served with their original content type (e.g., text/html for .html files, image/svg+xml for .svg files) and without a Content-Disposition: attachment header when using local filesystem storage. An authenticated user or attacker with content upload permissions can upload a specially crafted HTML or SVG file containing JavaScript, which executes in the browser of any user who visits the file URL, resulting in stored cross-site scripting (XSS) in the context of the host application.
EPSS
5.4 Medium
CVSS3