Description
lichess.org is the forever free, adless and open source chess server. Prior to commit c54596c9e1569d378fe20f80d4c790c6fdee54c4, a user who can add a chapter to a study can place attacker-controlled text in the PGN Annotator tag, which becomes Comment.Author.External and is returned verbatim by authorText. When a study node has at least two comments, ui/analyse/src/treeView/inlineView.ts interpolates that author string into HTML passed to the innerHTML hook without escaping it. Opening the affected study can therefore render stored attacker-controlled HTML and CSS for other viewers, including navigation to an attacker-controlled site, content spoofing, and CSS-based data exposure, although the site's content security policy blocks injected JavaScript. This vulnerability is fixed by commit c54596c9e1569d378fe20f80d4c790c6fdee54c4.
Published: 2026-10-14
Score: 5.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Stored HTML Injection
Action: Patch Immediately
AI Analysis

Impact

The vulnerability arises when a user who can add a chapter to a lichess study places attacker‑controlled text in the PGN Annotator tag. This text is stored as Comment.Author.External and later returned verbatim by authorText. When a study node contains at least two comments, the web client interpolates that author string directly into innerHTML without escaping, allowing arbitrary HTML and CSS to be rendered for all viewers. Because the site’s content‑security‑policy blocks JavaScript, the attacker cannot execute scripts, but can still perform navigation to malicious sites, spoof legitimate content, and leak data through CSS.

Affected Systems

Affected systems include all instances of Lichess.org running versions of the Lila backend before the patch commit c54596c9e1569d378fe20f80d4c790c6fdee54c4. The issue was fixed by that commit. Users and administrators should verify that their instance is at or above that revision or have applied the equivalent security update.

Risk and Exploitability

The CVSS score of 5.4 classifies this as moderate severity. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. An attacker needs only the permission to create a chapter in a study, a privilege normally granted to normal users. Exploitation can occur locally on the site; once a chapter is added, any subsequent viewer of the study will be exposed to the injected HTML and CSS. The lack of executable JavaScript reduces the impact compared to a full XSS, but still poses a risk of phishing, spoofing, and data exfiltration via CSS.

Generated by OpenCVE AI on October 15, 2026 at 14:06 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Lila backend to the commit that fixed the issue (c54596c9e1569d378fe20f80d4c790c6fdee54c4) or later.
  • If immediate upgrade is not possible, deny or restrict the ability to add new chapters to studies for untrusted users until the patch is applied.
  • Implement sanitization or escape logic for the PGN Annotator tag’s author text to prevent unescaped HTML from being rendered; alternatively apply stricter CSP rules on study pages.

Generated by OpenCVE AI on October 15, 2026 at 14:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 14 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Description lichess.org is the forever free, adless and open source chess server. Prior to commit c54596c9e1569d378fe20f80d4c790c6fdee54c4, a user who can add a chapter to a study can place attacker-controlled text in the PGN Annotator tag, which becomes Comment.Author.External and is returned verbatim by authorText. When a study node has at least two comments, ui/analyse/src/treeView/inlineView.ts interpolates that author string into HTML passed to the innerHTML hook without escaping it. Opening the affected study can therefore render stored attacker-controlled HTML and CSS for other viewers, including navigation to an attacker-controlled site, content spoofing, and CSS-based data exposure, although the site's content security policy blocks injected JavaScript. This vulnerability is fixed by commit c54596c9e1569d378fe20f80d4c790c6fdee54c4.
Title lichess.org: Stored HTML Injection via PGN Annotator Tag in Studies
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-14T19:41:15.577Z

Reserved: 2026-10-01T16:09:08.456Z

Link: CVE-2026-103974

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-14T19:17:07.843

Modified: 2026-10-16T20:04:29.760

Link: CVE-2026-103974

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-15T14:15:15Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')