CVE-2026-27120: Swift Html Escaping Grapheme Cluster Bypass

Using `String.replacing` or `String.replacingOccurrences` to escape HTML characters is vulnerable to extended grapheme cluster bypasses. An attacker can append Unicode combining scalars (e.g., U+0301) to HTML special characters (`<`, `>`, `&`, `"`, `'`), causing the replacement to fail and potentially leading to Cross-Site Scripting (XSS). To securely escape

Provally CuratedPublic repositoryMediumMedium confidenceVerifiedApache-2.0Swift
greprules fetch cve-2026-27120-swift-html-escaping-grapheme-cluster-bypass --engine opengrep

Description

Using `String.replacing` or `String.replacingOccurrences` to escape HTML characters is vulnerable to extended grapheme cluster bypasses. An attacker can append Unicode combining scalars (e.g., U+0301) to HTML special characters (`<`, `>`, `&`, `"`, `'`), causing the replacement to fail and potentially leading to Cross-Site Scripting (XSS). To securely escape