{"id":"CVE-2020-25828","aliases":["BIT-mediawiki-2020-25828","DEBIAN-CVE-2020-25828","DLA-2379-1","DSA-4767-1","EUVD-2022-4110","GHSA-h8qx-mj6v-2934","MGASA-2020-0381","UBUNTU-CVE-2020-25828"],"status":"published","title":"MediaWiki Cross-site Scripting (XSS) vulnerability","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","severity":{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01089,"percentile":0.65576,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2020-09-25T00:00:00Z","modified":"2026-10-26T12:00:52Z","fixes":[{"ecosystem":"Packagist","package":"mediawiki/core","fixed_in":["1.31.9","1.34.3","1.35.0"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"mediawiki","fixed_in":["1.31.11","1.34.4"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"mediawiki","fixed_in":["1:1.35.0-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"mediawiki","fixed_in":["1:1.35.0-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"mediawiki","fixed_in":["1:1.35.0-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"mediawiki/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.31.0"},{"fixed":"1.31.9"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"mediawiki/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.32.0"},{"fixed":"1.34.3"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"mediawiki/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.35.0-rc.0"},{"fixed":"1.35.0"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"mediawiki","ranges":[{"type":"SEMVER","events":[{"introduced":"1.31.10"},{"fixed":"1.31.11"},{"introduced":"1.32.0"},{"fixed":"1.34.4"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:1.35.0-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:1.35.0-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:1.35.0-1"}]}]},{"source":"osv","ecosystem":"Debian:9","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:1.27.7-1~deb9u4"}]}],"versions":["1:1.27.3-1","1:1.27.4-1","1:1.27.4-1~bpo8+1","1:1.27.4-1~deb9u1","1:1.27.4-2","1:1.27.4-3","1:1.27.5-1~deb9u1","1:1.27.6-1~deb9u1","1:1.27.7-1~deb9u1","1:1.27.7-1~deb9u2","1:1.27.7-1~deb9u3"],"bundled":4},{"source":"osv","ecosystem":"Debian:10","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:1.31.10-1~deb10u1"}]}],"versions":["1:1.31.2-1","1:1.31.4-1","1:1.31.4-1~deb10u1","1:1.31.5-1","1:1.31.5-2","1:1.31.5-3","1:1.31.6-1","1:1.31.6-1~deb10u1","1:1.31.7-1","1:1.31.7-1~deb10u1","1:1.31.8-1"],"bundled":8},{"source":"osv","ecosystem":"Packagist","package":"mediawiki/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.31.0"},{"fixed":"1.31.9"}]}],"versions":["1.31.0","1.31.1","1.31.2","1.31.3","1.31.4","1.31.5","1.31.6","1.31.7","1.31.8"]},{"source":"osv","ecosystem":"Packagist","package":"mediawiki/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.32.0"},{"fixed":"1.34.3"}]}],"versions":["1.32.0","1.32.1","1.32.2","1.32.3","1.32.4","1.32.5","1.32.6","1.33.0","1.33.0-rc.0","1.33.1","1.33.2","1.33.3","1.33.4","1.34.0","1.34.0-rc.0","1.34.0-rc.1","1.34.1","1.34.2"]},{"source":"osv","ecosystem":"Packagist","package":"mediawiki/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.35.0-rc.0"},{"fixed":"1.35.0"}]}],"versions":["1.35.0-rc.0","1.35.0-rc.1","1.35.0-rc.2","1.35.0-rc.3"]},{"source":"osv","ecosystem":"Mageia:7","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.31.10-1.mga7"}]}],"bundled":7},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.27.3-1","1:1.27.4-1","1:1.27.4-2","1:1.27.4-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"mediawiki","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:1.31.2-1ubuntu1","1:1.31.5-1","1:1.31.5-1ubuntu1","1:1.31.5-2","1:1.31.5-3","1:1.31.5-3ubuntu1","1:1.31.6-1","1:1.31.7-1","1:1.31.7-1ubuntu0.1~esm1"]}],"products":[{"vendor":"fedoraproject","product":"fedora"},{"vendor":"mediawiki","product":"mediawiki"}],"references":[{"url":"https://lists.wikimedia.org/pipermail/mediawiki-announce","tags":["x_refsource_MISC","x_transferred","Vendor Advisory","web","advisory","report"]},{"url":"https://lists.wikimedia.org/pipermail/mediawiki-l/2020-September/048480.html","tags":["x_refsource_CONFIRM","x_transferred","Mailing List","Vendor Advisory","web","advisory","report"]},{"url":"https://lists.wikimedia.org/pipermail/mediawiki-l/2020-September/048488.html","tags":["x_refsource_MISC","x_transferred","Mailing List","Vendor Advisory","web","advisory","report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/RTTPZ7XMDS66I442OLLHXBDNP2LCBJU6/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-25828","tags":["web","advisory"]},{"url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/mediawiki/core/CVE-2020-25828.yaml","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/RTTPZ7XMDS66I442OLLHXBDNP2LCBJU6","tags":["web"]},{"url":"https://phabricator.wikimedia.org/T115888","tags":["web","report"]},{"url":"https://github.com/advisories/GHSA-h8qx-mj6v-2934"},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-25828","tags":["advisory"]},{"url":"https://github.com/wikimedia/mediawiki","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2020-0381.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=27331","tags":["report"]},{"url":"https://lists.wikimedia.org/pipermail/mediawiki-announce/2020-September/000260.html","tags":["web"]},{"url":"https://lists.wikimedia.org/pipermail/mediawiki-announce/2020-September/000262.html","tags":["web"]},{"url":"https://www.debian.org/security/2020/dsa-4767","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2020-25828","tags":["report"]},{"url":"https://lists.wikimedia.org/pipermail/wikitech-l/2020-September/093888.html","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-25828","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-25828","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2020-09-27T20:31:44Z","modified":"2024-08-04T15:40:36.947Z","updated_at":"2026-11-02T14:35:48.854892Z"}],"euvd":[{"id":"EUVD-2022-4110","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2020-09-27T20:31:44Z","modified":"2024-08-04T15:40:36Z","updated_at":"2026-11-03T03:07:16.308974Z"}],"ghsa":[{"id":"GHSA-h8qx-mj6v-2934","title":"MediaWiki Cross-site Scripting (XSS) vulnerability","description":"An issue was discovered in MediaWiki before 1.31.9 and 1.32.x through 1.34.x before 1.34.3. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2022-05-24T17:29:42Z","modified":"2024-05-17T21:56:27Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:37:49.987036Z"}],"nvd":[{"id":"CVE-2020-25828","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2020-09-27T21:15:12.877Z","modified":"2026-06-17T03:07:21.42Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:06:17.70091Z"}],"osv":[{"id":"CVE-2020-25828","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2020-09-27T21:15:12.877Z","modified":"2026-10-24T10:31:05.929482943Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:15.879068Z"},{"id":"DEBIAN-CVE-2020-25828","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2020-09-27T21:15:12.877Z","modified":"2026-10-26T12:00:52.037379991Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:33.729655Z"},{"id":"GHSA-h8qx-mj6v-2934","title":"MediaWiki Cross-site Scripting (XSS) vulnerability","description":"An issue was discovered in MediaWiki before 1.31.9 and 1.32.x through 1.34.x before 1.34.3. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2022-05-24T17:29:42Z","modified":"2024-05-19T02:23:56.43954Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:48.920784Z"},{"id":"UBUNTU-CVE-2020-25828","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2020-09-27T21:15:00Z","modified":"2026-05-27T10:17:05.268249581Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T15:54:23.905183Z"},{"id":"BIT-mediawiki-2020-25828","description":"An issue was discovered in MediaWiki before 1.31.10 and 1.32.x through 1.34.x before 1.34.4. The non-jqueryMsg version of mw.message().parse() doesn't escape HTML. This affects both message contents (which are generally safe) and the parameters (which can be based on user input). (When jqueryMsg is loaded, it correctly accepts only whitelisted tags in message contents, and escapes all parameters. Situations with an unloaded jqueryMsg are rare in practice, but can for example occur for Special:SpecialPages on a wiki with no extensions installed.)","status":"published","published":"2024-03-06T11:13:56.789Z","modified":"2025-04-03T14:40:37.652Z","updated_at":"2026-11-02T15:28:33.072289Z"},{"id":"DLA-2379-1","title":"mediawiki - security update","status":"published","published":"2020-09-25T00:00:00Z","modified":"2026-03-09T01:17:52.590019Z","updated_at":"2026-11-02T15:46:10.712745Z"},{"id":"DSA-4767-1","title":"mediawiki - security update","status":"published","published":"2020-09-25T00:00:00Z","modified":"2026-03-09T02:10:47.322306Z","updated_at":"2026-11-02T15:46:17.19998Z"},{"id":"MGASA-2020-0381","title":"Updated mediawiki packages fix security vulnerability","description":"Multiple security issues were discovered in MediaWiki: SpecialUserRights could\nleak whether a user existed or not, multiple code paths lacked HTML\nsanitisation allowing for cross-site scripting and TOTP validation applied\ninsufficient rate limiting against brute force attempts (CVE-2020-25812,\nCVE-2020-25813, CVE-2020-25814, CVE-2020-25815, CVE-2020-25827,\nCVE-2020-25828).\n\nPossible issues with actors not being loaded from the correct database or wiki\n(CVE-2020-25869).\n","status":"published","published":"2020-09-30T10:01:40Z","modified":"2026-04-16T04:40:52.804701258Z","updated_at":"2026-11-02T15:49:41.509337Z"}]}}
