CVE-2026-123084

Description

An expression language injection has been found in the HeaderContentGuard.permit function in publication.py of the content guard in the Pulpcore package. The guard is supposed to check a value in a request header. It saves a jq filter and runs that filter against the header when a client asks for content. The filter is not limited to the header, and jq's env builtin also returns the environment of the content process. A low-privileged network attacker or user who can create a header content guard and attach it to a distribution can save a filter that reads that environment. The content request is allowed or denied according to the filter result. Repeating the request lets that attacker or user recover the environment, including Pulp settings held there, such as the Django secret key or the database password.

Statement

Red Hat Product Security has rated this vulnerability with a Moderate security impact. This vulnerability affects Pulpcore's header content guard handling.

The caller must already be allowed to create or change a header content guard and to attach it to a distribution. The content request that runs the filter needs no further account. The flaw is reachable in pulpcore's default configuration.

The vulnerable code was introduced in pulpcore 3.39.0 when the header content guard was added.

Red Hat Ansible Automation Platform 2.6 and 2.7 include this header check. A user who is allowed to create the check and attach it to a repository can read the environment of the content service. On these versions the application secret and the database password are stored in the settings file, so they are not part of that environment. The impact on Automation Platform 2.6 and 2.7 is Low with 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Red Hat Satellite does not use this guard. Katello installs only the RHSM certificate guard, and Pulp API authentication is the Satellite service certificate mapped to the internal pulp admin. A Satellite user cannot create or attach the header guard. Satellite is not affected.
Pulpcore in RHUI-5 does not create this guard. Content customers are authorized by the CDS entitlement check, and the RHUA nginx allows /pulp/api/v3/ only from localhost. A remote user cannot create the guard. RHUI 5 is not affected.

Mitigation

Red Hat is not aware of a practical temporary workaround that fully mitigates this issue or meets Red Hat Product Security's standards for usability, deployment, applicability, or stability.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score6.5N/AN/A
Attack VectorNetworkN/AN/A
Attack ComplexityLowN/AN/A
Privileges RequiredLowN/AN/A
User InteractionNoneN/AN/A
ScopeUnchangedN/AN/A
ConfidentialityHighN/AN/A
Integrity ImpactNoneN/AN/A
Availability ImpactNoneN/AN/A

Vector

Red Hat: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Understanding the Weakness (CWE)

Confidentiality

Technical Impact: Read Application Data

An attacker could insert an expression that references private data, which is then included in the output.

Integrity

Technical Impact: Execute Unauthorized Code or Commands

An attacker could execute arbitrary expressions.

Acknowledgements

Red Hat would like to thank Zachariah Mithani (AploSec) for reporting this issue.

Frequently Asked Questions

Want to get errata notifications? Sign up here.