Leafkit is a templating language with Swift-inspired syntax. Prior to 1.4.1, htmlEscaped in leaf-kit will only escape html special characters if the extended grapheme clusters match, which allows bypassing escaping by using an extended grapheme cluster containing both the special html character and some additional characters. In the case of html attributes, this can lead to XSS if there is a leaf variable in the attribute that is user controlled. This vulnerability is fixed in 1.4.1.

Project Subscriptions

Vendors Products
Leafkit Subscribe
Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4hfh-fch3-5q7p Leaf-kit html escaping does not work on characters that are part of extended grapheme cluster
Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

Tue, 24 Feb 2026 19:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 23 Feb 2026 15:00:00 +0000

Type Values Removed Values Added
First Time appeared Vapor
Vapor leafkit
Vendors & Products Vapor
Vapor leafkit

Fri, 20 Feb 2026 21:45:00 +0000

Type Values Removed Values Added
Description Leafkit is a templating language with Swift-inspired syntax. Prior to 1.4.1, htmlEscaped in leaf-kit will only escape html special characters if the extended grapheme clusters match, which allows bypassing escaping by using an extended grapheme cluster containing both the special html character and some additional characters. In the case of html attributes, this can lead to XSS if there is a leaf variable in the attribute that is user controlled. This vulnerability is fixed in 1.4.1.
Title Leaf-kit html escaping does not work on characters that are part of extended grapheme cluster
Weaknesses CWE-75
CWE-79
CWE-87
References
Metrics cvssV3_1

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


Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-02-24T18:41:10.070Z

Reserved: 2026-02-17T18:42:27.043Z

Link: CVE-2026-27120

cve-icon Vulnrichment

Updated: 2026-02-24T18:41:01.691Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-02-20T22:16:29.830

Modified: 2026-02-23T18:14:13.887

Link: CVE-2026-27120

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-02-23T14:35:01Z

Weaknesses