CVE-2026-27120

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:vapor:leafkit:*:*:*:*:*:*:*:*

History

02 Mar 2026, 13:34

Type Values Removed Values Added
First Time Vapor
Vapor leafkit
CPE cpe:2.3:a:vapor:leafkit:*:*:*:*:*:*:*:*
References () https://github.com/vapor/leaf-kit/commit/8919e39476c3a4ba05c28b71546bb9195f87ef34 - () https://github.com/vapor/leaf-kit/commit/8919e39476c3a4ba05c28b71546bb9195f87ef34 - Patch
References () https://github.com/vapor/leaf-kit/security/advisories/GHSA-4hfh-fch3-5q7p - () https://github.com/vapor/leaf-kit/security/advisories/GHSA-4hfh-fch3-5q7p - Exploit, Vendor Advisory
Summary
  • (es) Leafkit es un lenguaje de plantillas con sintaxis inspirada en Swift. Antes de la versión 1.4.1, htmlEscaped en leaf-kit solo escapará los caracteres especiales HTML si los clústeres de grafemas extendidos coinciden, lo que permite eludir el escape utilizando un clúster de grafemas extendido que contenga tanto el carácter especial HTML como algunos caracteres adicionales. En el caso de los atributos HTML, esto puede llevar a XSS si hay una variable leaf en el atributo que está controlada por el usuario. Esta vulnerabilidad está corregida en la versión 1.4.1.

20 Feb 2026, 22:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-02-20 22:16

Updated : 2026-03-02 13:34


NVD link : CVE-2026-27120

Mitre link : CVE-2026-27120

CVE.ORG link : CVE-2026-27120


JSON object : View

Products Affected

vapor

  • leafkit
CWE
CWE-75

Failure to Sanitize Special Elements into a Different Plane (Special Element Injection)

CWE-79

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

CWE-87

Improper Neutralization of Alternate XSS Syntax