{"id":"CVE-2023-30609","aliases":["ALPINE-CVE-2023-30609","EUVD-2023-1433","GHSA-xv83-x443-7rmw","openSUSE-SU-2024:12884-1","openSUSE-SU-2024:12895-1"],"status":"published","title":"matrix-react-sdk vulnerable to HTML injection in search results via plaintext message highlighting","description":"matrix-react-sdk is a react-based SDK for inserting a Matrix chat/VoIP client into a web page. Prior to version 3.71.0, plain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload. No cross-site scripting attack is possible due to the hardcoded content security policy. Version 3.71.0 of the SDK patches over the issue. As a workaround, restarting the client will clear the HTML injection.","severity":{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00617,"percentile":0.50027,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-74","CWE-79"],"published":"2023-04-25T19:48:11Z","modified":"2026-11-03T06:32:42Z","fixes":[{"ecosystem":"npm","package":"matrix-react-sdk","fixed_in":["3.71.0"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.18","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"element-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"riot-web","fixed_in":["1.11.30-r0"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"element-web","fixed_in":["1.11.30-1.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"element-desktop","fixed_in":["1.11.30-1.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"matrix-react-sdk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.71.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"riot-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-r0"}]}]},{"source":"osv","ecosystem":"npm","package":"matrix-react-sdk","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.71.0"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"element-web","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"element-desktop","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.30-1.1"}]}]}],"products":[{"vendor":"matrix-org","product":"matrix-react-sdk"},{"vendor":"matrix-react-sdk_project","product":"matrix-react-sdk"}],"references":[{"url":"https://github.com/matrix-org/matrix-react-sdk/security/advisories/GHSA-xv83-x443-7rmw","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web"]},{"url":"https://github.com/matrix-org/matrix-react-sdk/commit/bf182bc94556849d7acdfa0e5fdea2aa129ea826","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.71.0","tags":["x_refsource_MISC","x_transferred","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-30609","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-xv83-x443-7rmw"},{"url":"https://security.alpinelinux.org/vuln/CVE-2023-30609","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/30xxx/CVE-2023-30609.json","tags":["advisory"]},{"url":"https://github.com/matrix-org/matrix-react-sdk","tags":["package"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2023-30609","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2023-30609","title":"matrix-react-sdk vulnerable to HTML injection in search results via plaintext message highlighting","description":"matrix-react-sdk is a react-based SDK for inserting a Matrix chat/VoIP client into a web page. Prior to version 3.71.0, plain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload. No cross-site scripting attack is possible due to the hardcoded content security policy. Version 3.71.0 of the SDK patches over the issue. As a workaround, restarting the client will clear the HTML injection.","status":"published","published":"2023-04-25T20:58:27.966Z","modified":"2025-02-03T17:54:55.06Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-74"],"updated_at":"2026-11-02T14:35:22.309324Z"}],"euvd":[{"id":"EUVD-2023-1433","description":"matrix-react-sdk is a react-based SDK for inserting a Matrix chat/VoIP client into a web page. Prior to version 3.71.0, plain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload. No cross-site scripting attack is possible due to the hardcoded content security policy. Version 3.71.0 of the SDK patches over the issue. As a workaround, restarting the client will clear the HTML injection.","status":"published","published":"2023-04-25T20:58:27Z","modified":"2025-02-03T17:54:55Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:L","level":"medium"}],"updated_at":"2026-11-03T00:04:07.282625Z"}],"ghsa":[{"id":"GHSA-xv83-x443-7rmw","title":"HTML injection in search results via plaintext message highlighting","description":"### Impact\nPlain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload.\n\nCross-site scripting is possible by including resources from `recaptcha.net` and `gstatic.com` which are included in the default CSP.\n\nThanks to [Cadence Ember](https://cadence.moe/) for finding the injection and to [S1m](https://github.com/p1gp1g/) for finding possible XSS vectors.\n\n### Patches\nVersion 3.71.0 of the SDK fixes the issue.\n\n### Workarounds\nRestarting the client will clear the injection.","status":"published","published":"2023-04-25T19:48:11Z","modified":"2023-11-04T05:04:33Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:L","level":"high"}],"cwes":["CWE-74","CWE-79"],"updated_at":"2026-11-02T14:37:12.407027Z"}],"nvd":[{"id":"CVE-2023-30609","description":"matrix-react-sdk is a react-based SDK for inserting a Matrix chat/VoIP client into a web page. Prior to version 3.71.0, plain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload. No cross-site scripting attack is possible due to the hardcoded content security policy. Version 3.71.0 of the SDK patches over the issue. As a workaround, restarting the client will clear the HTML injection.","status":"published","published":"2023-04-25T21:15:10.843Z","modified":"2026-06-17T05:55:07.83Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-74"],"updated_at":"2026-11-02T14:07:59.151142Z"}],"osv":[{"id":"ALPINE-CVE-2023-30609","description":"matrix-react-sdk is a react-based SDK for inserting a Matrix chat/VoIP client into a web page. Prior to version 3.71.0, plain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload. No cross-site scripting attack is possible due to the hardcoded content security policy. Version 3.71.0 of the SDK patches over the issue. As a workaround, restarting the client will clear the HTML injection.","status":"published","published":"2023-04-25T21:15:10.843Z","modified":"2026-11-03T06:32:42.558472446Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T07:17:02.90744Z"},{"id":"CVE-2023-30609","title":"matrix-react-sdk vulnerable to HTML injection in search results via plaintext message highlighting","description":"matrix-react-sdk is a react-based SDK for inserting a Matrix chat/VoIP client into a web page. Prior to version 3.71.0, plain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload. No cross-site scripting attack is possible due to the hardcoded content security policy. Version 3.71.0 of the SDK patches over the issue. As a workaround, restarting the client will clear the HTML injection.","status":"published","published":"2023-04-25T20:58:27.966Z","modified":"2026-10-28T02:31:13.304416164Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:L","level":"medium"}],"cwes":["CWE-74"],"updated_at":"2026-11-02T15:44:31.790231Z"},{"id":"GHSA-xv83-x443-7rmw","title":"HTML injection in search results via plaintext message highlighting","description":"### Impact\nPlain text messages containing HTML tags are rendered as HTML in the search results. To exploit this, an attacker needs to trick a user into searching for a specific message containing an HTML injection payload.\n\nCross-site scripting is possible by including resources from `recaptcha.net` and `gstatic.com` which are included in the default CSP.\n\nThanks to [Cadence Ember](https://cadence.moe/) for finding the injection and to [S1m](https://github.com/p1gp1g/) for finding possible XSS vectors.\n\n### Patches\nVersion 3.71.0 of the SDK fixes the issue.\n\n### Workarounds\nRestarting the client will clear the injection.","status":"published","published":"2023-04-25T19:48:11Z","modified":"2023-11-08T04:12:25.905467Z","cvss":[{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:L","level":"high"}],"cwes":["CWE-74","CWE-79"],"updated_at":"2026-11-02T15:47:00.604718Z"},{"id":"openSUSE-SU-2024:12884-1","title":"element-web-1.11.30-1.1 on GA media","description":"These are all security issues fixed in the element-web-1.11.30-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:15:53.022348Z","updated_at":"2026-11-02T16:58:36.025801Z"},{"id":"openSUSE-SU-2024:12895-1","title":"element-desktop-1.11.30-1.1 on GA media","description":"These are all security issues fixed in the element-desktop-1.11.30-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:20:19.40602Z","updated_at":"2026-11-02T16:58:36.025801Z"}]}}
