CVE-2026-103869
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.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
- Puntuación base: 6.5
Probabilidad de explotación (EPSS)
FIRST aún no ha puntuado esta CVE (habitual en CVEs muy recientes o rechazadas).
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1210Exploitation of Remote Serviceslateral movement75 % - Impacto principal
T1212Exploitation for Credential Accesscredential access85 % - Impacto secundario
T1550.001Application Access Tokenlateral movement70 %
Vulnerabilidad en pulp-ansible que permite obtener tokens de acceso de otros remotos manipulando el servidor remoto (red adyacente). El atacante reutiliza credenciales (T1212) y puede usarlas en otros servicios (T1550.001: token reuse).
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-488
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-103869",
"cveTags": [],
"metrics": {
"cvssMetricV31": [
{
"type": "Secondary",
"source": "secalert@redhat.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 6.5,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "secalert@redhat.com",
"affectedData": [
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "ansible-automation-platform-24/hub-rhel8",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "ansible-automation-platform-25/hub-rhel8",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "affected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "ansible-automation-platform-26/hub-rhel9",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "affected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "ansible-automation-platform-27/hub-rhel9",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "affected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "python3.11-pulp-ansible",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "python3.12-pulp-ansible",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "affected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "python3x-pulp-ansible",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:/a:redhat:ansible_automation_platform:2"
],
"vendor": "Red Hat",
"product": "Red Hat Ansible Automation Platform 2",
"packageName": "python-pulp-ansible",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:/a:redhat:satellite:6"
],
"vendor": "Red Hat",
"product": "Red Hat Satellite 6",
"packageName": "python3.12-pulp-ansible",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "affected"
},
{
"cpes": [
"cpe:/a:redhat:satellite:6"
],
"vendor": "Red Hat",
"product": "Red Hat Satellite 6",
"packageName": "python-pulp-ansible",
"collectionURL": "https://access.redhat.com/downloads/content/package-browser/",
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-07T06:16:35.207",
"references": [
{
"url": "https://access.redhat.com/security/cve/CVE-2026-103869",
"source": "secalert@redhat.com"
},
{
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2544603",
"source": "secalert@redhat.com"
}
],
"vulnStatus": "Received",
"weaknesses": [
{
"type": "Secondary",
"source": "secalert@redhat.com",
"description": [
{
"lang": "en",
"value": "CWE-488"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"lastModified": "2026-10-07T07:16:57.463",
"sourceIdentifier": "secalert@redhat.com"
}