{"id":"CVE-2026-39960","aliases":["EUVD-2026-31192","GHSA-qj6w-v29q-4rgx"],"status":"published","title":"MantisBT is Vulnerable to Stored XSS through Custom Field Textarea Values","description":"Mantis Bug Tracker (MantisBT) is an open source issue tracker. Versions 2.28.1 and below contain flawed logic that causes improper escaping of a textarea custom field's contents in the Update Issue page, (bug_update_page.php) allowing an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded. This facilitates session theft, leading to admin account takeover, full project data access. In order to exploit this issue, a textarea-type custom field must be configured for the project, the attack must be carried out by an authenticated user with bug report permission (low privilege). This can affect any user viewing the bug edit form, including administrators. The issue has been fixed in version 2.28.2. If users cannot immediately upgrade, they can work around the issue by using the default Content-Security Policy, which blocks script execution.","severity":{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.0023,"percentile":0.13922,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2026-05-11T19:34:32Z","modified":"2026-10-28T02:30:36Z","fixes":[{"ecosystem":"Packagist","package":"mantisbt/mantisbt","fixed_in":["2.28.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"mantisbt/mantisbt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.28.1"},{"fixed":"2.28.2"}]}]},{"source":"osv","ecosystem":"Packagist","package":"mantisbt/mantisbt","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.28.2"}]}],"versions":["2.10.0","2.10.1","2.11.0","2.11.1","2.12.0","2.12.1","2.12.2","2.13.0","2.13.1","2.13.2","2.14.0","2.15.0","2.15.1","2.16.0","2.16.1","2.17.0","2.17.1","2.17.2","2.18.0","2.18.1","2.19.0","2.19.1","2.20.0","2.20.1","2.21.0","2.21.1","2.21.2","2.21.3","2.22.0","2.22.1","2.22.2","2.23.0","2.23.1","2.24.0","2.24.1","2.24.2","2.24.3","2.24.4","2.24.5","2.25.0","2.25.1","2.25.2","2.25.3","2.25.4","2.25.5","2.25.6","2.25.7","2.25.8","2.26.0","2.26.1","2.26.2","2.26.3","2.26.4","2.27.0","2.27.1","2.27.2","2.27.3","2.28.0","2.28.1","2.3.0","2.3.1","2.3.2","2.3.3","2.4.0","2.4.1","2.4.2","2.5.0","2.5.1","2.5.2","2.6.0","2.7.0","2.7.1","2.8.0","2.8.1","2.9.0","2.9.1"]}],"products":[{"vendor":"mantisbt","product":"mantisbt"}],"references":[{"url":"https://github.com/mantisbt/mantisbt/security/advisories/GHSA-qj6w-v29q-4rgx","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/mantisbt/mantisbt/commit/5fec0f448b7a7d7d539a6adb6dccceac4e4e4ab7","tags":["x_refsource_MISC","fix","web"]},{"url":"https://mantisbt.org/bugs/view.php?id=37003","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39960","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-qj6w-v29q-4rgx"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39960.json","tags":["advisory"]},{"url":"https://github.com/mantisbt/mantisbt","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-39960","title":"MantisBT is Vulnerable to Stored XSS through Custom Field Textarea Values","description":"Mantis Bug Tracker (MantisBT) is an open source issue tracker. Versions 2.28.1 and below contain flawed logic that causes improper escaping of a textarea custom field's contents in the Update Issue page, (bug_update_page.php) allowing an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded. This facilitates session theft, leading to admin account takeover, full project data access. In order to exploit this issue, a textarea-type custom field must be configured for the project, the attack must be carried out by an authenticated user with bug report permission (low privilege). This can affect any user viewing the bug edit form, including administrators. The issue has been fixed in version 2.28.2. If users cannot immediately upgrade, they can work around the issue by using the default Content-Security Policy, which blocks script execution.","status":"published","published":"2026-05-20T21:11:02.341Z","modified":"2026-05-21T13:30:07.497Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:20:02.662847Z"}],"euvd":[{"id":"EUVD-2026-31192","description":"Mantis Bug Tracker (MantisBT) is an open source issue tracker. Versions 2.28.1 and below contain flawed logic that causes improper escaping of a textarea custom field's contents in the Update Issue page, (bug_update_page.php) allowing an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded. This facilitates session theft, leading to admin account takeover, full project data access. In order to exploit this issue, a textarea-type custom field must be configured for the project, the attack must be carried out by an authenticated user with bug report permission (low privilege). This can affect any user viewing the bug edit form, including administrators. The issue has been fixed in version 2.28.2. If users cannot immediately upgrade, they can work around the issue by using the default Content-Security Policy, which blocks script execution.","status":"published","published":"2026-05-20T21:11:02Z","modified":"2026-05-21T13:30:07Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T18:21:13.357667Z"}],"ghsa":[{"id":"GHSA-qj6w-v29q-4rgx","title":"MantisBT is Vulnerable to Stored XSS in Custom Field Textarea Values","description":"Improper escaping of a textarea custom field's contents in the Update Issue page (bug_update_page.php) allows an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded.\n\n### Impact\nSession theft leading to admin account takeover, full project data access.\n\n- Precondition: A textarea-type custom field must be configured for the project\n- Attacker: Authenticated user with bug report permission (low privilege)\n- Victim: Any user viewing the bug edit form, including administrators\n\n### Patches\n- 5fec0f448b7a7d7d539a6adb6dccceac4e4e4ab7\n\n### Workarounds\nThe default Content-Security Policy will block script execution.\n\n### References\n- https://mantisbt.org/bugs/view.php?id=37003\n- This is related to [CVE-2024-34081](https://github.com/advisories/GHSA-wgx7-jp56-65mq).\n\n### Credits\nThanks to the following security researchers for independently discovering and responsibly reporting the issue, and providing a patch to fix it.\n- Thanks to Nozomu Sasaki (Paul) (@morimori-dev)\n- Tristan Madani (@TristanInSec) from Talence Security","status":"published","published":"2026-05-11T19:34:32Z","modified":"2026-06-08T20:14:51Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:40:20.187636Z"}],"nvd":[{"id":"CVE-2026-39960","description":"Mantis Bug Tracker (MantisBT) is an open source issue tracker. Versions 2.28.1 and below contain flawed logic that causes improper escaping of a textarea custom field's contents in the Update Issue page, (bug_update_page.php) allowing an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded. This facilitates session theft, leading to admin account takeover, full project data access. In order to exploit this issue, a textarea-type custom field must be configured for the project, the attack must be carried out by an authenticated user with bug report permission (low privilege). This can affect any user viewing the bug edit form, including administrators. The issue has been fixed in version 2.28.2. If users cannot immediately upgrade, they can work around the issue by using the default Content-Security Policy, which blocks script execution.","status":"published","published":"2026-05-20T22:16:36.563Z","modified":"2026-07-23T15:10:00.137Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:12:19.752984Z"}],"osv":[{"id":"CVE-2026-39960","title":"MantisBT is Vulnerable to Stored XSS through Custom Field Textarea Values","description":"Mantis Bug Tracker (MantisBT) is an open source issue tracker. Versions 2.28.1 and below contain flawed logic that causes improper escaping of a textarea custom field's contents in the Update Issue page, (bug_update_page.php) allowing an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded. This facilitates session theft, leading to admin account takeover, full project data access. In order to exploit this issue, a textarea-type custom field must be configured for the project, the attack must be carried out by an authenticated user with bug report permission (low privilege). This can affect any user viewing the bug edit form, including administrators. The issue has been fixed in version 2.28.2. If users cannot immediately upgrade, they can work around the issue by using the default Content-Security Policy, which blocks script execution.","status":"published","published":"2026-05-20T21:11:02.341Z","modified":"2026-10-28T02:30:36.304008816Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:45:03.040464Z"},{"id":"GHSA-qj6w-v29q-4rgx","title":"MantisBT is Vulnerable to Stored XSS in Custom Field Textarea Values","description":"Improper escaping of a textarea custom field's contents in the Update Issue page (bug_update_page.php) allows an attacker to inject HTML and, if CSP settings permit, execute arbitrary JavaScript when the page is loaded.\n\n### Impact\nSession theft leading to admin account takeover, full project data access.\n\n- Precondition: A textarea-type custom field must be configured for the project\n- Attacker: Authenticated user with bug report permission (low privilege)\n- Victim: Any user viewing the bug edit form, including administrators\n\n### Patches\n- 5fec0f448b7a7d7d539a6adb6dccceac4e4e4ab7\n\n### Workarounds\nThe default Content-Security Policy will block script execution.\n\n### References\n- https://mantisbt.org/bugs/view.php?id=37003\n- This is related to [CVE-2024-34081](https://github.com/advisories/GHSA-wgx7-jp56-65mq).\n\n### Credits\nThanks to the following security researchers for independently discovering and responsibly reporting the issue, and providing a patch to fix it.\n- Thanks to Nozomu Sasaki (Paul) (@morimori-dev)\n- Tristan Madani (@TristanInSec) from Talence Security","status":"published","published":"2026-05-11T19:34:32Z","modified":"2026-09-10T03:51:06.801643399Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:54.760124Z"}]}}
