CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-35f3-pg38-486f: YesWiki Vulnerable to Reflected XSS via Unescaped Archived-Revision `time` Parameter in `handlers/page/show.php`

mediumCVSS 6.1CVE-2026-52773
Summary 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 HTML or JavaScript to a valid archived revision timestamp, still load that archived revision, and execute arbitrary JavaScript in the victim's browser. The vulnerable form is only rendered when the victim can both read and edit the target page. In restricted deployments this requires a victim with read and write access to that page. On a default doryphore 4.6.5 install, public pages such as PagePrincipale were editable anonymously during validation, so the issue can also affect unauthenticated visitors in that configuration. Details The request routing path uses the user-controlled time parameter to load a specific page revision. In includes/YesWiki.php around Run() line 1223, the request is routed through: $this->SetPage($this->LoadPage($tag, isset($_REQUEST['time']) ? $_REQUEST['time'] : '')); LoadPage() delegates to PageManager::getOne() in includes/services/PageManager.php around line 75, which builds a SQL predicate directly from the supplied revision time: $timeQuery = $time ? "time = '{$this->dbService->escape($time)}'" : "latest = 'Y'"; If the loaded page is an archived revision (latest == 'N') and the current user has write access, handlers/page/show.php around lines 43-49 renders an edit form for that archived revision and copies $_GET['time'] into a hidden input without htmlspecialchars(): $time = isset($_GET['time']) ? $_GET['time'] : ''; echo $this->FormOpen(testUrlInIframe() ? 'editiframe' : 'edit', '', 'get'); <input type="hidden" name="time" value="<?php echo $time; ?>" /> That sink is reachable only when all of the following are true: 1. The target page has at least one archived revision. 2. The victim can read the target page. 3. The victim can write the target page, because the archived revision edit form is rendered only insid

Details

Source
GitHub Security Advisories (INTL · database · site)
Severity
medium — CVSS 6.1
Published
2026-07-09
Last updated
2026-07-09
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-35f3-pg38-486f

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-52773coverage & exploitation statusNVD · CVE.org

More from GitHub Security Advisories