View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0036973 | mantisbt | security | public | 2026-03-16 07:18 | 2026-03-23 13:23 |
| Reporter | ninjasec | Assigned To | dregad | ||
| Priority | high | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | 1.3.8 | ||||
| Target Version | 2.28.1 | Fixed in Version | 2.28.1 | ||
| Summary | 0036973: CVE-2026-33548: Stored HTML Injection / XSS in my_view_page.php Timeline via Unescaped Historic Tag Name | ||||
| Description | MantisBT’s timeline renderer inserts historic tag names into HTML without escaping when the old tag name no longer resolves to an existing tag row. The vulnerable path is in IssueTagTimelineEvent.class.php:64. For tag timeline events, the renderer attempts to resolve the historic tag name with tag_get_by_name(). If that lookup succeeds, it uses the safe tag_get_link() path. If it fails, it falls back to outputting the historic tag name directly inside the timeline HTML. Because tag names can contain HTML, an attacker can create a tag with markup, attach it to an issue, then rename or otherwise change it so the original historic name no longer resolves. When a victim later loads my_view_page.php, the timeline entry renders the attacker-controlled historic tag name as raw HTML inside <span class="tag_name">...</span>. | ||||
| Steps To Reproduce | Steps:
| ||||
| Tags | No tags attached. | ||||
|
Reported issue is related to https://mantisbt.org/bugs/view.php?id=36971 |
|
|
Issue processed as part of https://github.com/mantisbt/mantisbt/security/advisories/GHSA-fh48-f69w-7vmp and covered by the same CVE ID as 0036971 (not yet assigned). |
|
|
Posting the (slightly redacted) Matrix chat with @ninjasec for the record. Mon, Mar 16, 2026, 11:34:55 - ninjasec: Hey, That was an quick patch.
Mon, Mar 16, 2026, 12:11:07 - ninjasec: I guess, yes it should work as both are related to get_tag_name |
|
Following feedback from GitHub staff who recommended to treat this as 2 distinct vulnerabilites, a separate Advisory https://github.com/mantisbt/mantisbt/security/advisories/GHSA-73vx-49mv-v8w5 was opened and a new CVE request submitted. |
|
|
CVE-2026-33548 assigned. |
|
|
MantisBT: master-2.28 f32787c1 2026-03-16 07:39 Details Diff |
Escape unknown tag name in Timeline Timeline API retrieves data from the bug_history table. It can happen that the tag name stored there no longer exists (e.g. if it has been renamed or deleted). In this case, tag_get_by_name() returns false (obviously), causing IssueTagTimelineEvent::html() to fall back to displaying the name stored in the Timeline event as-is, but lack of proper escapeing was allowed XSS / HTML injection. Fixes 0036973 |
Affected Issues 0036973 |
|
| mod - core/classes/IssueTagTimelineEvent.class.php | Diff File | ||