| Title | olivier-ls PHP-FTS 0.1 Cross-Site Scripting |
|---|
| Description | PHP-FTS (ols/php-fts) before an unreleased fix does not HTML-escape document field values in `SearchEngine::buildHighlights()` before wrapping matched words in HTML highlight tags. The `search($query, highlight: true)` path splits field values into words and concatenates matched words as `$openTag . $word . $closeTag` (default `<mark>...</mark>`) with no `htmlspecialchars()`. When an application indexes attacker-influenced content and renders the returned highlights as HTML, an attacker can inject arbitrary markup (e.g. an `<img src=x onerror=alert(document.cookie)>` payload) that executes in the browser of users viewing search results, leading to stored cross-site scripting (session/cookie theft, account takeover).
Reproduction: https://github.com/sumo166/CVE-apply/blob/main/olivier-ls/php-fts/SearchEngine%20buildHighlights%20Stored%20XSS%20(CWE-79)_cve.md |
|---|
| Source | ⚠️ https://github.com/olivier-ls/php-fts/issues/1 |
|---|
| User | summmm (UID 69690) |
|---|
| Submission | 08/23/2026 07:52 (27 days ago) |
|---|
| Moderation | 09/19/2026 11:01 (27 days later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 407915 [olivier-ls PHP-FTS up to 1.1.2 Search Engine src/SearchEngine.php buildHighlights Query cross site scripting] |
|---|
| Points | 20 |
|---|