{"action":"created","issue":{"url":"https://api.github.com/repos/randombit/botan/issues/1790","repository_url":"https://api.github.com/repos/randombit/botan","labels_url":"https://api.github.com/repos/randombit/botan/issues/1790/labels{/name}","comments_url":"https://api.github.com/repos/randombit/botan/issues/1790/comments","events_url":"https://api.github.com/repos/randombit/botan/issues/1790/events","html_url":"https://github.com/randombit/botan/issues/1790","id":391126604,"node_id":"MDU6SXNzdWUzOTExMjY2MDQ=","number":1790,"title":"Check if we are vulnerable to CVE-2018-16875","user":{"login":"randombit","id":469092,"node_id":"MDQ6VXNlcjQ2OTA5Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/469092?v=4","gravatar_id":"","url":"https://api.github.com/users/randombit","html_url":"https://github.com/randombit","followers_url":"https://api.github.com/users/randombit/followers","following_url":"https://api.github.com/users/randombit/following{/other_user}","gists_url":"https://api.github.com/users/randombit/gists{/gist_id}","starred_url":"https://api.github.com/users/randombit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randombit/subscriptions","organizations_url":"https://api.github.com/users/randombit/orgs","repos_url":"https://api.github.com/users/randombit/repos","events_url":"https://api.github.com/users/randombit/events{/privacy}","received_events_url":"https://api.github.com/users/randombit/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-14T14:12:12Z","updated_at":"2018-12-14T18:42:32Z","closed_at":null,"author_association":"OWNER","body":"Golang had a bug where if there are many intermediate CAs with the same Subject then it would iterate over all possible chains trying to find one that worked, and potentially take a lot of CPU time.\r\n\r\nhttps://github.com/golang/go/issues/29233\r\nhttps://github.com/golang/go/commit/df523969435b8945d939c7e2a849b50910ef4c25\r\n\r\nWe first build the path and then attempt to validate it so I think what will happen instead is either the cert verifies (if we happen to pick the right intermediate cert) or fails immediately; we don't backtrack trying to find another intermediate. But it would be good to confirm all this with a test.\r\n\r\nAlso worth taking a look at why Go does it this way. Are there chains in practice where you need to pick among multiple possible intermediate CAs with same Subject, only one of which is correct?"},"comment":{"url":"https://api.github.com/repos/randombit/botan/issues/comments/447416489","html_url":"https://github.com/randombit/botan/issues/1790#issuecomment-447416489","issue_url":"https://api.github.com/repos/randombit/botan/issues/1790","id":447416489,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NzQxNjQ4OQ==","user":{"login":"briansmith","id":16816,"node_id":"MDQ6VXNlcjE2ODE2","avatar_url":"https://avatars0.githubusercontent.com/u/16816?v=4","gravatar_id":"","url":"https://api.github.com/users/briansmith","html_url":"https://github.com/briansmith","followers_url":"https://api.github.com/users/briansmith/followers","following_url":"https://api.github.com/users/briansmith/following{/other_user}","gists_url":"https://api.github.com/users/briansmith/gists{/gist_id}","starred_url":"https://api.github.com/users/briansmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briansmith/subscriptions","organizations_url":"https://api.github.com/users/briansmith/orgs","repos_url":"https://api.github.com/users/briansmith/repos","events_url":"https://api.github.com/users/briansmith/events{/privacy}","received_events_url":"https://api.github.com/users/briansmith/received_events","type":"User","site_admin":false},"created_at":"2018-12-14T18:42:32Z","updated_at":"2018-12-14T18:42:32Z","author_association":"NONE","body":"> Also worth taking a look at why Go does it this way. Are there chains in practice where you need to pick among multiple possible intermediate CAs with same Subject, only one of which is correct?\r\n\r\nAt least according to the specification, there is no requirement that the Subject field maps uniquely to a key. From that, it follows that there could be two (CA) certificates with the same subject and different keys. From that it follows that backtracking might be required. This is why Go's and other libraries do the backtracking."}}
{"actor":{"display_login":"briansmith"}}