Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with remote-sync privileges
-
ExploitCreate Ansible remote pointing to attacker server
-
ExecutionTrigger token-refresh sync on shared worker
-
ImpactCapture 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
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.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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
More in Red Hat Satellite 6
View allArbitrary file write in pulpcore's FilesystemExport feature allows an authenticated administrator to escape the intended
Command injection in the Red Hat Satellite job invocation API (/api/v2/job_invocations), shipped via the rubygem-foreman
Symlink-following file overwrite on the Ansible control node is possible in ansible-core when a user runs `ansible-galax
Privilege escalation in Foreman (the engine behind Red Hat Satellite 6) lets an authenticated user holding usergroup-man
OS command injection in Foreman's foreman-rake db:dump and db:import_dump tasks lets an attacker who already holds permi
Command injection in the Foreman foreman-rake errors:fetch_log task shipped with Red Hat Satellite 6 allows a local user
Path traversal in the pulpcore content upload API allows an authenticated user holding only low-privilege file-repositor
Candlepin, the entitlement and subscription management engine behind Red Hat Satellite 6, contains an authorization-logi
Jolokia's JSR-160 proxy in multiple Red Hat middleware products allows network-accessible unauthenticated attackers (per
Remote code execution is achievable in Red Hat Foreman and Satellite 6 via command injection in the WebSocket proxy impl
OS command injection in the Foreman foreman-tail helper utility shipped with Red Hat Satellite 6.19 for RHEL 9 allows a
Arbitrary command execution in ansible-core allows an attacker who controls a collection source URI to run commands on a
EUVD-2026-94171
GHSA-c5vx-cvpm-2hf5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB