Skip to main content

Pulp Ansible CVE-2026-103869

| EUVDEUVD-2026-94171 MEDIUM
Exposure of Data Element to Wrong Session (CWE-488)
2026-10-07 redhat GHSA-c5vx-cvpm-2hf5
6.5
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with remote-sync privileges
  2. Exploit
    Create Ansible remote pointing to attacker server
  3. Execution
    Trigger token-refresh sync on shared worker
  4. Impact
    Capture and replay cross-tenant access token

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V14 - Data Protection Exposure of data element to wrong session
Exploitation Conditions

Requires an authenticated user with permission to create or sync an Ansible collection remote (PR:L) in Pulp/AAP/Satellite, that remote must use bearer-token refresh, and the attacker must be able to point it at a server they control. The decisive condition is that another token download for a different remote must have run on the same worker process, populating the shared module-level token variable - without that, there is nothing to leak. Limiting factors: exploitation is confined to shared or multi-tenant deployments where multiple remotes use distinct tokens on the same worker; single-tenant or single-token setups have little to steal, and the dependency on concurrent/prior refresh activity means success is not fully attacker-controlled. No user interaction is required and only confidentiality of a token is affected.

Impact

This is a credible but moderate-priority issue, not a top-tier emergency. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, base 6.5) correctly models a network-reachable, low-privilege confidentiality-only flaw with no integrity or availability impact, which matches the description (content in Pulp is not altered and the service is not stopped). The real risk is credential disclosure: an authenticated tenant who can configure/sync a collection remote can harvest a bearer token that was obtained for a *different* remote because the token is cached in a single module-level variable shared across token downloads in that worker (CWE-488, exposure of a resource to the wrong session). No EPSS score, CISA KEV entry, POC reference, or SSVC decision was supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation - this is not a mass-exploitation candidate. One honest caveat: successful theft depends on another remote's token having populated the shared variable in the same worker, a timing/multi-tenant condition the attacker does not fully control, which argues for higher attack complexity than the AC:L in the input vector suggests; see assessed vector below. The attacker also needs legitimate privileges to create/sync remotes (PR:L), so impact is largely scoped to multi-tenant or shared-automation deployments where distinct remotes use distinct tokens.

Exploit ScenarioDerived

In a multi-tenant Pulp/AAP deployment, a low-privileged but authorized user creates an Ansible collection remote that uses bearer-token refresh and points it at a server they control. When a sync runs on a worker that previously refreshed a token for another tenant's remote, the attacker's remote receives that other remote's access token and can replay it against the upstream service that issued it. No public POC is referenced, so this is a plausibility scenario rather than a demonstrated exploit.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 07, 2026

Pulp Ansible's bearer-token refresh for collection remotes can disclose access tokens to an authenticated attacker who can create or sync a remote and point it at a malicious server. The attacker must then reuse the token at the issuing service, and exploitation is only possible if another token download for a different remote has run on the same worker process, meaning shared, multi-tenant deployments are primarily at risk. No public exploit code exists, and the assessed attack complexity is high (AC:H), so this is a moderate-priority information disclosure issue rather than a top-tier emergency.

RemediationAI

Red Hat has published a security advisory for CVE-2026-103869 at https://access.redhat.com/security/cve/CVE-2026-103869; consult it for the latest patch information, as no exact fixed version is provided in the available data. Until a patch is applied, restrict the permission to create or sync Ansible collection remotes to only highly trusted users, as the vulnerability requires an authenticated user with such permissions (PR:L). If multi-tenancy is necessary, isolate worker processes so that remotes with distinct tokens do not share the same process, although this may increase resource consumption. Additionally, monitor for suspicious remote creation or token refresh activity. These mitigations reduce risk but are not a substitute for applying the vendor patch when it becomes available.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability is an instance of CWE-488 (Exposure of Data Element to Wrong Session) within pulp-ansible's implementation of bearer-token refresh for Ansible collection remotes. Pulp is a repository management platform, and pulp-ansible is a plugin that enables syncing Ansible content. When a remote uses bearer-token refresh, the access token obtained is stored in a module-level variable that persists across requests handled by the same worker process. This shared state means that a token obtained for one remote can be inadvertently reused for a subsequent token download triggered by a different remote. An attacker with the ability to create or sync a collection remote can point it at a server they control and receive the leaked token, which they can then use at the legitimate service that issued it. The CPE strings indicate that Red Hat Ansible Automation Platform 2 and Red Hat Satellite 6 are affected, as they bundle the vulnerable pulp-ansible component. The root cause is improper isolation of session-specific data (the access token) in a multi-tenant or concurrent environment.

Know when Red Hat Satellite 6 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (redhat) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.3 MEDIUM

Network-reachable and needs only low-privilege remote-sync rights (PR:L), but success depends on another remote's token populating the shared worker variable, so AC:H; confidentiality-only token leak gives C:H, I:N, A:N.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionCVE.org

A flaw was found in pulp-ansible's bearer-token refresh for collection remotes. The access token is kept in one module-level variable and reused for every token download in that worker. A user who can sync an Ansible remote that uses token refresh, and can point that remote at a server they control, receives an access token obtained for a different remote, and can reuse it at the service that issued it. Content stored in Pulp is not changed, and the service is not stopped.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
enterprise Red Hat platforms (AAP 2, Satellite 6), common but not universal
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_satellite_6:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_satellite_6:*:*:*:*:*:*:*:*
CVE-2026-12701 CRITICAL
9.0 Jul 20

Arbitrary file write in pulpcore's FilesystemExport feature allows an authenticated administrator to escape the intended

CVE-2026-12405 HIGH
8.8 Oct 01

Command injection in the Red Hat Satellite job invocation API (/api/v2/job_invocations), shipped via the rubygem-foreman

CVE-2026-89091 HIGH
8.8 Oct 08

Symlink-following file overwrite on the Ansible control node is possible in ansible-core when a user runs `ansible-galax

CVE-2026-5136 HIGH
8.8 Jul 01

Privilege escalation in Foreman (the engine behind Red Hat Satellite 6) lets an authenticated user holding usergroup-man

CVE-2026-12541 HIGH
8.2 Oct 01

OS command injection in Foreman's foreman-rake db:dump and db:import_dump tasks lets an attacker who already holds permi

CVE-2026-12540 HIGH
8.2 Oct 01

Command injection in the Foreman foreman-rake errors:fetch_log task shipped with Red Hat Satellite 6 allows a local user

CVE-2026-90959 HIGH
8.1 Sep 24

Path traversal in the pulpcore content upload API allows an authenticated user holding only low-privilege file-repositor

CVE-2026-106471 HIGH
8.1 Oct 07

Candlepin, the entitlement and subscription management engine behind Red Hat Satellite 6, contains an authorization-logi

CVE-2026-84218 HIGH
8.1 Sep 01

Jolokia's JSR-160 proxy in multiple Red Hat middleware products allows network-accessible unauthenticated attackers (per

CVE-2026-1961 HIGH
8.0 Mar 26

Remote code execution is achievable in Red Hat Foreman and Satellite 6 via command injection in the WebSocket proxy impl

CVE-2026-12542 HIGH
7.8 Oct 01

OS command injection in the Foreman foreman-tail helper utility shipped with Red Hat Satellite 6.19 for RHEL 9 allows a

CVE-2026-16493 HIGH
7.8 Jul 21

Arbitrary command execution in ansible-core allows an attacker who controls a collection source URI to run commands on a

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy