An issue was discovered in OpenStack Keystone before 29.0.2. POST /v3/credentials did not validate that the caller-supplied projectid for an EC2-type credential matched the project of the authenticating application credential. This allowed an attacker holding an unrestricted application credential for project A to create an EC2 credential targeting project B; a subsequent /v3/ec2tokens exchange would then issue a Keystone token scoped to project B while still carrying the original appcred_id, enabling cross-project lateral movement within the credential owner's role footprint.
{
"binaries": [
{
"binary_version": "2:21.0.1-0ubuntu2.4",
"binary_name": "keystone"
},
{
"binary_version": "2:21.0.1-0ubuntu2.4",
"binary_name": "keystone-common"
},
{
"binary_version": "2:21.0.1-0ubuntu2.4",
"binary_name": "python3-keystone"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_version": "2:25.0.0-0ubuntu1.4",
"binary_name": "keystone"
},
{
"binary_version": "2:25.0.0-0ubuntu1.4",
"binary_name": "keystone-common"
},
{
"binary_version": "2:25.0.0-0ubuntu1.4",
"binary_name": "python3-keystone"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_version": "2:28.0.0-0ubuntu1.3",
"binary_name": "keystone"
},
{
"binary_version": "2:28.0.0-0ubuntu1.3",
"binary_name": "keystone-common"
},
{
"binary_version": "2:28.0.0-0ubuntu1.3",
"binary_name": "python3-keystone"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_version": "2:29.0.0-0ubuntu1.2",
"binary_name": "keystone"
},
{
"binary_version": "2:29.0.0-0ubuntu1.2",
"binary_name": "keystone-common"
},
{
"binary_version": "2:29.0.0-0ubuntu1.2",
"binary_name": "python3-keystone"
}
],
"availability": "No subscription required"
}