# Typesetter CMS Reflected XSS via Move Message Handling (CVE-2025-71166)

**Author:** Beatriz Fresno Naumova (beafn28), Snow1nd

**Date:** 14/01/2026

**Vendor:** Typesetter CMS

**Product:** Typesetter CMS

**Versions affected:** ≤ 5.1

**Component:** Administrative interface – Tools / Status (move message handling)\
(`include/admin/Tools/Status.php`)

**CWE:** CWE-79 – Improper Neutralization of Input During Web Page Generation (XSS)

**Attack type:** Remote

**Impact:** Cross-Site Scripting (XSS)

#### Description

Typesetter CMS versions up to and including 5.1 are affected by a reflected Cross-Site Scripting (XSS) vulnerability in the administrative interface, specifically within the *Tools / Status* move message handling functionality. The `path` parameter is reflected into the HTML output without proper context-aware output encoding in `include/admin/Tools/Status.php`.

An authenticated attacker can supply crafted input containing malicious HTML or JavaScript, resulting in arbitrary script execution within the context of an authenticated user’s browser session. This vulnerability may be leveraged to hijack sessions, execute unauthorized actions, or further compromise administrative functionality.

#### Impact

**Primary impact:**

* Execution of arbitrary JavaScript in an authenticated user’s browser session

**Consequences:**

* Session hijacking
* Unauthorized administrative actions
* Potential escalation to broader application compromise

#### CVSS Details

**CVSS v4.0 Vector:**\
`CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N`

**Base Score:** 4.8 (Medium)

#### Solution

No official fix is currently available, as the project appears to be no longer actively maintained.

**Recommendation:**

* Restrict access to administrative interfaces to trusted users only
* Apply strict context-aware output encoding for all user-controlled parameters
* Avoid reflecting unsanitized input in administrative messages

#### Mitigation

* Properly validate and encode all user-supplied input before rendering it in HTML
* Minimize reflection of request parameters in administrative pages
* Conduct regular security assessments of administrative components

#### Discoverer

Beatriz Fresno Naumova (beafn28)

Snow1nd

#### References

* **CVE Record:** <https://www.cve.org/CVERecord?id=CVE-2025-71166>
* **VulnCheck:** <https://www.vulncheck.com/advisories/typesetter-cms-reflected-xss-via-move-message-handling>
* **Typesetter:** <https://github.com/Typesetter/Typesetter>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/cve-and-poc/typesetter-cms-reflected-xss-via-move-message-handling-cve-2025-71166.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
