-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Advisory ID: SYSS-2020-043 Product: OpenSlides Manufacturer: OpenSlides Affected Version(s): 3.2 and 3.3, before 2020-11-20 Tested Version(s): 3.3-master-20201111 Vulnerability Type: Cross-Site Scripting (CWE-79) Risk Level: High CVSS Score: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H Solution Status: Fixed Manufacturer Notification: 2020-11-20 Solution Date: 2020-11-20 Public Disclosure: 2020-12-18 CVE Reference: CVE-2020-26280 Author of Advisory: Thibaud Kehler, SySS GmbH ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Overview: OpenSlides is the all-in-one solution for running plenary meetings and conferences.[1] Due to insufficient user input validation and escaping, OpenSlides is vulnerable to persistent cross-site scripting (XSS). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vulnerability Details: In the web application, users can enter rich text in various places, e.g. for personal notes or in motions. These fields can be used to store arbitrary JavaScript code that will be executed when other users read the respective text. An attacker could utilize this vulnerability to manipulate votes of other users, hijack the moderator's session or simply disturb the meeting. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Proof of Concept (PoC): Create a new motion via the REST web service: POST /rest/motions/motion/ HTTP/1.1 Host: demo.openslides.org Content-Type: application/json X-CSRFToken: REDACTED Content-Length: 215 Cookie: OpenSlidesCsrfToken=REDACTED; OpenSlidesSessionID=REDACTED { "collectionString":"motions/motion", "title":"Test", "text":"", "attachments_id":[], "agenda_create":false, "agenda_type":2, "supporters_id":[], "workflow_id":1 } Use the browser to navigate to the motion at https://demo.openslides.org/motions/ and open the browser console. If the JavaScript code is executed, the console should contain the message "XSS". ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Solution: Update OpenSlides to version 3.3 or newer and ensure that it includes the hotfix from November 20, 2020 (commit f3809fc8a97ee305d721662a75f788f9e9d21938). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Disclosure Timeline: 2020-11-19: Vulnerability discovered 2020-11-20: Vulnerability reported to manufacturer 2020-11-20: Hotfix released by manufacturer 2020-12-18: Public disclosure of vulnerability ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ References: [1] Product website for OpenSlides https://openslides.com/ [2] GitHub repository for OpenSlides https://github.com/OpenSlides/OpenSlides [3] GitHub security advisory https://github.com/OpenSlides/OpenSlides/security/advisories/GHSA-w5wr-98qm-jx92 [4] SySS security advisory SYSS-2020-043 https://www.syss.de/fileadmin/dokumente/Publikationen/Advisories/SYSS-2020-043.txt [5] SySS responsible disclosure policy https://www.syss.de/responsible-disclosure-policy/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Credits: This security vulnerability was found by Thibaud Kehler of SySS GmbH. E-Mail: thibaud.kehler@syss.de Public Key: https://www.syss.de/fileadmin/dokumente/PGPKeys/Thibaud_Kehler.asc Key ID: 0xB6457D7A Key Fingerprint: CF29 54F1 1B7F 2FF5 7ED9 9BAD E9C7 9866 B645 7D7A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Disclaimer: The information provided in this security advisory is provided "as is" and without warranty of any kind. Details of this security advisory may be updated in order to provide as accurate information as possible. The latest version of this security advisory is available on the SySS website. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Copyright: Creative Commons - Attribution (by) - Version 3.0 URL: http://creativecommons.org/licenses/by/3.0/deed.en -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEzylU8Rt/L/V+2Zut6ceYZrZFfXoFAl/8LpMACgkQ6ceYZrZF fXqXiBAAiviYJOgVK4OpJxFshAx2WzXD4CvV42Ard22AJbQIkEj6T7xSnUGb/k2p 9Qngp9rArX5XQCnW3pne1jPKNhOBA5B8/e/MBn1d3FofVQrt3XVFJkQcPN2zj0My jpVlsfUd21Oh89Qd09I0Xyiw5iwCDe8yPbPdS10KFNSrclLEY6Y2Rlt5Lu6tjb0r vaIQ1XrG4xmXG1bNfR0Ws9eOCSVmsQGGiEnVoG1rU48L66UxG0s0xork8NjAszAW QpstbubHaN2NiRLqQGY6+SWVe6/X+og0g5rwTh4XsCEjgphPkGi4odPsMV/aZHQW 37p19gGre12BXhRcegjRM1ezMX6fntuD2fR8Yut50p7NRtdpjezDsA6hbNzmGlka z/SKpnJESNQs9t5z+8IDNTkYkPzszPXXUWxYPImAPTsbBrXsRJ5B1snTLV4kQFyb wpfzdIYN4h3+/4Kv/fqRzbSuF1CTqKiS5/j1W5i85CExHUheaLxTSYmdEXPSl+3N MX3skDbmfagFZiYnWNsWskr7l6gGEsB5sjVf+LBDPT1JYjmUUcxwsRg5E5NVrBMQ Z5Ie/yVPaSsb0WxBlA1azHzcGymlHHGY0WbY24uh6o15HOL9t4WVvv8XhuKPOEdZ GFfrwU9qXfuolt10WUzXkoePP6rHVyzolwDoPNC5r+Q0spmmN8A= =jqHu -----END PGP SIGNATURE-----