CVE-2026-103869: Pulp-ansible: bearer tokens are reused across remotes in a worker

Published Oct 1, 2026
·
Updated

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.

Other sources

AUTHTOKEN in pulpansible/app/downloaders.py is a module global. TokenAuthHttpDownloader.getorupdatetoken() returns that global to any downloader in the process. It is not stored per remote or per token URL. The refresh path runs only when the remote has both token and authurl. A worker that has already refreshed one remote's token sends that access token as the bearer for a later remote. The collection remote token field is write-only. Introduced by 57f5775b, first release 0.6.0. It has same root cause as reported pulpcontainer finding (CVE-2026-103868). This is a separate CVE from the pulp-container, as it has different codebase, and independently fixable.

— Red Hat

Affected Software

1 affected component
Pulp pulp-ansible>=0.6.0

Event History

Oct 1, 2026
Data Sourced
via Red Hat·12:19 PM
DescriptionSeverityAffected Software
Oct 7, 2026
CVE Published
via MITRE·05:46 AM
Data Sourced
via MITRE·05:46 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·06:16 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

An attacker needs permission to sync an Ansible collection remote that uses token refresh and must be able to configure that remote to point to a server they control. The vulnerable worker must previously have refreshed a token for a different remote.

2

Are all collection remotes affected?

No. The token-refresh path is used only when a collection remote has both a token and an auth_url configured. The issue arises when workers handle more than one such remote because the refreshed token is shared at the module level rather than stored per remote or token URL.

3

What could an attacker obtain or do?

The attacker can receive an access token that was obtained for a different remote and reuse it against the service that issued that token. The described impact does not modify content stored in Pulp or stop the service.

4

How can I determine whether exposure is possible in my environment?

Review whether users who can create or modify and sync collection remotes can configure remotes with both token and auth_url, particularly to arbitrary externally controlled servers. Also determine whether the same worker processes token-refresh requests for multiple remotes.

5

What is a mitigation if an update cannot be applied immediately?

Restrict the ability to configure or sync collection remotes that use token refresh, and prevent such remotes from targeting attacker-controlled or untrusted servers. Reducing shared-worker use for multiple token-refresh remotes also limits the condition in which one remote receives another remote's token.

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