WriteFreely: Stored cross-site scripting via post slug
Summary
WriteFreely before 0.17.3 allows an authenticated author to store a malicious post slug through the CreatePost API. For paid-shortcode posts the raw slug is inserted unescaped into a link, so script can run when readers view the post in RSS/Atom feed readers, newsletters or ActivityPub clients. Exploitation requires an author account and a victim who opens the affected content.
Affected
- WriteFreely versions 0.x before 0.17.3 (vulnerable code in v0.17.2)
Fixed in
- Upgrade to WriteFreely 0.17.3 or later
Workaround
Unknown.
Exploitation
- No public proof of concept known.
- Not known to be exploited in the wild; not listed in the CISA KEV catalog according to secondary sources.
Our recommendation
- Update all WriteFreely instances to 0.17.3 or later as a high priority, because the same release also fixes a more critical authentication bypass.
- Run the database migration (writefreely db migrate) after updating and check the service starts, since some install methods needed manual steps; note that API users will be signed out.
- Restrict author accounts to trusted users until the update is applied.
- Review existing posts for unusual slugs or links, especially paid-shortcode posts.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- CVE Record CVE-2026-126498 www.cve.org
- VulnCheck advisory www.vulncheck.com
- WriteFreely 0.17.3 release notes github.com
- Fix commit d7231d8 github.com
- GitHub security advisory GHSA-cwxm-8ch5-j2vh github.com
- Vulnerable code postrender.go v0.17.2 github.com
- OffSeq threat radar radar.offseq.com
- NixOS nixpkgs backport PR github.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 11 Nov 2026, 19:04.
Original description (NVD)
WriteFreely before 0.17.3 contains a stored cross-site scripting vulnerability that allows authenticated authors to inject HTML by supplying a malicious post slug via the CreatePost API. The raw slug is concatenated into an anchor by augmentReadingDestination() for paid-shortcode posts, executing script for RSS/Atom feed readers, newsletter recipients and ActivityPub viewers.
NVD references (6)
- https://github.com/writefreely/writefreely/blob/v0.17.2/database.go#L702-L705
- https://github.com/writefreely/writefreely/blob/v0.17.2/postrender.go#L117-L121
- https://github.com/writefreely/writefreely/commit/d7231d81a914f1314a218d5e8fde6e0341391ccd
- https://github.com/writefreely/writefreely/releases/tag/v0.17.3
- https://github.com/writefreely/writefreely/security/advisories/GHSA-cwxm-8ch5-j2vh
- https://www.vulncheck.com/advisories/writefreely-before-0.17.3-stored-xss-via-unsanitized-post-slug
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
