@WALINE/CLIENT · CVE-2026-64670 · Package
NO FIX YET · SEE WHAT TO DO
Waline's comment editor renders a comment's raw, unsanitized body as HTML when an administrator clicks Edit. A commenter who posts crafted HTML can run script in the admin's browser session.
first public Jul 2, 2026 · 2 sources
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Sites that run Waline with @waline/client at version 3.15.2 or earlier, where administrators or moderators use the edit feature on comments. Anyone who can post comments can plant the payload, and it fires when a privileged user clicks Edit. Sites that do not use Waline or that have no privileged editors have less exposure.
Not affected if no-admin-edit-use, not-using-waline
Who cares @waline/client, comments, npm, self-hosted, waline, xss
npm ls @waline/client (or check your lockfile): version <= 3.15.2 is affected per the advisoryWaline is a comment system with backend support. In versions 3.15.2 and prior, @waline/client renders the comment editor's live preview with marked and no sanitizer (utils/markdown.ts), and the preview is injected with v-html. When a comment is edited, the editor is seeded with the comment's raw, un-sanitized body (orig). Only administrators and the comment owner can edit. So an administrator who clicks Edit on an attacker's comment renders that attacker's raw HTML in their own session: an unauthenticated commenter achieves privilege-escalation stored XSS against a moderator with a single Edit click. At time of publication, there are no publicly available patches.
This page as .md · .json · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.
Check it with your coding agent
It reads this page and tells you if your code is affected.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
3.15.2)3.16.0 release notes do not mention this fix