Software: --------- Doorkeeper (https://github.com/doorkeeper-gem/doorkeeper) Description: ------------ Doorkeeper is an OAuth 2 provider for Rails written in Ruby. Affected Versions: ------------------ 2.1.0 - 4.2.5 Fixed Versions: --------------- 4.2.6 or later Problem: -------- Stored XSS on the OAuth Client's name will cause users being prompted for consent via the "implicit" grant type to execute the XSS payload. The XSS attack could gain access to the user's active session, resulting in account compromise. Any user is susceptible if they click the authorization link for the malicious OAuth client. Because of how the links work, a user cannot tell if a link is malicious or not without first visiting the page with the XSS payload. The requirement for this attack to be dangerous in the wild is the software using Doorkeeper must allow regular users to create or edit OAuth client applications. If 3rd parties are allowed to create OAuth clients in the app using Doorkeeper, upgrade to the patched versions immediately. Additionally there is stored XSS in the native_redirect_uri form element. DWF has assigned CVE-2018-1000088. Solution: --------- Upgrade to Doorkeeper v4.2.6 or later Timeline: --------- 2017-05-25: Discovered by Gauthier Monserand[0] 2017-05:25: Fix prepared by Gauthier Monserand[1] 2017-05-26: Maintainer released patched version 2018-02-17: CVE requested 2018-02-20: CVE assigned via DWF 2018-02-21: Bulletin published[2] Acknowledgements: ----------------- Credit to Gauthier Monserand (https://github.com/simkim) for finding and fixing this vulnerability. References: ----------- [0]: https://github.com/doorkeeper-gem/doorkeeper/issues/969 [1]: https://github.com/doorkeeper-gem/doorkeeper/pull/970 [2]: https://blog.justinbull.ca/cve-2018-1000088-stored-xss-in-doorkeeper/ -- UPDATE: > > Solution: > --------- > Upgrade to Doorkeeper v4.2.6 or later > > Apologies. This fails to account for a non-trivial scenario. Any software using Doorkeeper that has generated its own custom views[0] requires manual work to verify there's no explicit HTML in the `client_name` and `native_redirect_uri` field values. This has been updated in the bulletin's Fix section[1]. [0]: https://github.com/doorkeeper-gem/doorkeeper/wiki/Customizing-views [1]: https://blog.justinbull.ca/cve-2018-1000088-stored-xss-in-doorkeeper/#fix -- Justin Bull PGP Fingerprint: E09D 38DE 8FB7 5745 2044 A0F4 1A2B DEAA 68FD B34C