Stored HTML injection in lichess.org study PGN annotator tag
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
lila in lichess.org before commit c54596c9e1569d378fe20f80d4c790c6fdee54c4 inserts the PGN Annotator tag of a study chapter into HTML without escaping it (CWE-79). A user who can add a chapter to a study can store text that renders as HTML and CSS for other viewers who open that study. The injected markup can redirect viewers to an attacker-controlled site, spoof content and expose data through CSS, but the content security policy blocks injected JavaScript.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| lichess-org | lila | < c54596c9e1569d378fe20f80d4c790c6fdee54c4 | — | No fix listed | CNA |
- lila Vendorlichess-org Affected < c54596c9e1569d378fe20f80d4c790c6fdee54c4 Fixed in — No fix listed CNA
Remediation
The sources list no fixed version for lila. The source description states that commit c54596c9e1569d378fe20f80d4c790c6fdee54c4 fixes this flaw.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Timeline
- 2026-10-15 Threatist record created from CVE-2026-103974
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences