CVE-2026-50221
Full vulnerability record from the local CVENow database.
Description
In OpenStack Swift before 2.37.2, proxy-server does not strip internal update headers (X-Container-Host, X-Container-Device, X-Delete-At-Host, X-Delete-At-Device) from client requests before forwarding them to object-servers. An authenticated user with write access can inject these headers to redirect container update requests to an attacker-controlled server, enabling server-side request forgery. The SSRF requests expose internal cluster metadata including storage policy indexes, partition mappings, device names, and when at rest encryption is enabled, cipher text and initialization vectors for the container-level encryption key. The attacker can also cause "ghost listings" in arbitrary containers via the shard-range redirect mechanism.
View original CVE JSON
{
"id": "CVE-2026-50221",
"sourceIdentifier": "[email protected]",
"published": "2026-06-23T18:18:04.440",
"lastModified": "2026-10-25T23:10:00.167",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In OpenStack Swift before 2.37.2, proxy-server does not strip internal update headers (X-Container-Host, X-Container-Device, X-Delete-At-Host, X-Delete-At-Device) from client requests before forwarding them to object-servers. An authenticated user with write access can inject these headers to redirect container update requests to an attacker-controlled server, enabling server-side request forgery. The SSRF requests expose internal cluster metadata including storage policy indexes, partition mappings, device names, and when at rest encryption is enabled, cipher text and initialization vectors for the container-level encryption key. The attacker can also cause \"ghost listings\" in arbitrary containers via the shard-range redirect mechanism."
},
{
"lang": "es",
"value": "En OpenStack Swift anterior a 2.37.2, proxy-server no elimina las cabeceras de actualización internas (X-Container-Host, X-Container-Device, X-Delete-At-Host, X-Delete-At-Device) de las peticiones del cliente antes de reenviarlas a los servidores de objetos. Un usuario autenticado con acceso de escritura puede inyectar estas cabeceras para redirigir las peticiones de actualización del contenedor a un servidor controlado por el atacante, lo que permite la falsificación de petición del lado del servidor. Las peticiones SSRF exponen metadatos internos del clúster, incluyendo índices de políticas de almacenamiento, mapeos de particiones, nombres de dispositivos y, cuando el cifrado en reposo está habilitado, texto cifrado y vectores de inicialización para la clave de cifrado a nivel de contenedor. El atacante también puede causar ’listados fantasma’ en contenedores arbitrarios a través del mecanismo de redirección de rango de fragmentos."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "OpenStack",
"product": "Swift",
"defaultStatus": "unaffected",
"repo": "https://opendev.org/openstack/swift",
"versions": [
{
"version": "2.0.0",
"lessThan": "2.35.3",
"versionType": "semver",
"status": "affected"
},
{
"version": "2.36.0",
"lessThan": "2.36.2",
"versionType": "semver",
"status": "affected"
},
{
"version": "2.37.0",
"lessThan": "2.37.2",
"versionType": "semver",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "LOW",
"vulnAvailabilityImpact": "LOW",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "NOT_DEFINED",
"confidentialityRequirement": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"availabilityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"valueDensity": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED"
}
}
],
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Primary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N",
"baseScore": 5.4,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.8,
"impactScore": 2.5
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-06-23T17:38:21.427291Z",
"id": "CVE-2026-50221",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Primary",
"description": [
{
"lang": "en",
"value": "CWE-918"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:openstack:swift:*:*:*:*:*:*:*:*",
"versionStartIncluding": "2.0.0",
"versionEndExcluding": "2.35.3",
"matchCriteriaId": "7E55A646-6E82-433A-8CCE-264334D5EF76"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:openstack:swift:*:*:*:*:*:*:*:*",
"versionStartIncluding": "2.36.0",
"versionEndExcluding": "2.36.2",
"matchCriteriaId": "EF8B39A3-B72E-4837-9CB3-F437EAC84F4B"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:openstack:swift:*:*:*:*:*:*:*:*",
"versionStartIncluding": "2.37.0",
"versionEndExcluding": "2.37.2",
"matchCriteriaId": "581FC644-8499-4750-B70D-C726C5D15E11"
}
]
}
]
}
],
"references": [
{
"url": "https://launchpad.net/bugs/2150261",
"source": "[email protected]",
"tags": [
"Exploit",
"Issue Tracking",
"Vendor Advisory"
]
},
{
"url": "https://security.openstack.org/ossa/OSSA-2026-024.html",
"source": "[email protected]",
"tags": [
"Patch",
"Vendor Advisory"
]
},
{
"url": "https://www.openwall.com/lists/oss-security/2026/06/23/5",
"source": "[email protected]",
"tags": [
"Mailing List",
"Patch",
"Third Party Advisory"
]
},
{
"url": "http://www.openwall.com/lists/oss-security/2026/06/23/5",
"source": "af854a3a-2127-422b-91ae-364da2661108",
"tags": [
"Mailing List",
"Patch",
"Third Party Advisory"
]
}
]
}