Three Cyrillic letters still let lookalike domains through Chromium's address-bar check
Researchers at haveibeensquatted.com found three Cyrillic letters that still break Chromium's whole-script lookalike check in current Chrome. A name built on one can display close to a real brand, so the address bar is a weaker check than users are taught.
The Watch · Security desk

Before-and-after figure: Chrome 147 and earlier accept all five breaker letters the researchers named. In Chrome 148 and later, three of the five still pass, because Unicode 17 reclassified two.
| Measure | Value | As of | Claim |
|---|---|---|---|
| Chrome 147 and earlier | 5 breaker letters | 19 | |
| Chrome 148 and later | 3 breaker letters | 21 |
What happened
- Under ICU 78, 64 lowercase Cyrillic characters are both allowed by Chromium and absent from its 29-character Cyrillic lookalike list.
- Chrome 148, released in May 2026, adopted ICU 78.2 and Unicode 17, and the Unicode reclassification now blocks two of the five breakers the researchers named.
- The work revisits Xudong Zheng's April 2017 Cyrillic .com, drawn by Chrome, Firefox and Opera as near-identical to a real domain and shown by Chromium as Punycode ever since.
Why it matters
- Who's exposed exposure Machines still on Chrome 147 or earlier accept all five breaker characters, so slow browser updates widen the set of lookalikes that render as Unicode.
- What it limits constraint Mail clients draw sender addresses by their own rules, so a change to Chromium's lookalike list would not cover a deceptive address in an email From line.
- What it sets up precedent Chrome 148 closed two breakers only because Unicode 17 reclassified them, so the remaining three stay usable until Chromium edits its 29-character list or Unicode reclassifies them as well.
Next story · Security · 2d ago
XBOW built a Windows Chrome exploit chain in six days with about $40,000 of AI computeConfirmed4 publishers
The weak point is in stage 1, in the whole-script confusable rule. Chromium runs the first part of its check through International Components for Unicode (ICU) with a narrowed set of allowed characters, then adds rules of its own [8]. The confusable rule is all-or-nothing. A single Cyrillic character missing from the lookalike list takes the whole label outside the rule [9]. The researchers call that character a breaker [9]. To be useful it must sit in Chromium's allowed set, stay off the lookalike list, and still pass for a Latin letter to someone reading the address bar [10].
Many characters clear the two software tests. Few look enough like a Latin letter to fool a reader. The researchers name five that do [18], about one in thirteen of the candidates [22]. One is a letter used in Kazakh, Mongolian and Tatar that Chromium does not list as a lookalike [12].
A breaker gets a label through stage 1 and no further [6]. Every letter in the label must also be Cyrillic. Several Latin letters have no Cyrillic substitute in Chromium's allowed set, and Chrome 148 removed the substitutes for two more [20]. That limits which brand names can be spelled at all. Stage 2 then reduces the full hostname to comparison strings, called skeletons, and checks them against a bundled list of popular domains. If the hostname matches a different site, the whole name goes back to Punycode [11]. The registry also decides which characters a name may contain [13]. We'd rate the technique exploitable today, but only against brand names that can be written entirely in permitted Cyrillic. The researchers say they found two edge cases that still let a convincing lookalike through [5]. They credit the breaker technique for the name Chrome 154 displays in their opening screenshot [4].
The address-bar advice dates from when domain names could only hold English letters, digits and a hyphen [14]. Names have been able to use almost any writing system since 2003 [15]. For those names the advice depends on Chromium showing deceptive-looking labels in Punycode instead [1]. In our view, reading the address bar still helps, but it has to sit alongside controls that do not rely on a person reading the name correctly. The published findings do not report any attacker using the technique, and they do not describe a Chromium change for the three characters that still pass.
What to watch
- Whether Chromium adds the three remaining breaker characters to its Cyrillic lookalike list, or a later ICU or Unicode release reclassifies them.
- Registrations of all-Cyrillic labels using these characters that spell popular brand names, the first sign of the technique moving from research into phishing.
- Fuller detail on the researchers' second edge case, and whether it reaches stage 2 for brand names the first one cannot spell.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence60
- Adoption
- Not scored
- Hype gap+15
- Incentives
- Not scored
- Confidence62
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Chromium, the engine behind Chrome, Edge and other browsers, applies a display check: if a name looks built to deceive, the address bar shows its encoded Punycode form instead.
- [2]
Mail clients make their own choice about how to draw a sender's address.
- [3]
The research investigates whether it is still possible to register a domain that looks like a well-known one and have Chromium-based browsers render it close to the real thing.
- [4]
The post includes a screenshot of Chrome 154 displaying a lookalike name, and says the breaker technique is the mechanism behind the name in its introduction.
- [5]
The research finds two edge cases in Chrome's handling of internationalized domain names that still let a convincing lookalike through; the first is in the whole-script confusable check.
- [6]
Chromium's display decision has two stages and a name must pass both to show as Unicode: stage 1 checks each xn-- label through SafeToDisplayAsUnicode() with the TLD as context; stage 2 checks the whole hostname against a list of popular domains and runs only when every label passes stage 1.
- [7]
Stage 1 runs seven checks on each label in a fixed order, and the first one that fails sends the name to Punycode.
- [8]
Chromium runs the first part of the check through International Components for Unicode (ICU), configured with a narrowed set of allowed characters, and then applies rules of its own.
- [9]
The whole-script confusable rule is all-or-nothing, so a single Cyrillic character that is not on the lookalike list keeps the whole label out of it; the post calls that character a 'breaker'.
- [10]
A useful breaker must sit in Chromium's allowed Unicode set (clearing check #1), be missing from the Cyrillic lookalike list (so check #6 does not fire), and still look enough like a Latin letter that a reader can mistake it.
- [11]
In stage 2 Chromium reduces the hostname to comparison skeletons and compares them against a bundled list of popular domains; a match for a different site sends the entire hostname back to Punycode even though every label passed stage 1.
- [12]
A Cyrillic letter used in Kazakh, Mongolian and Tatar is not on Chromium's lookalike list.
- [13]
Registries decide separately which characters a domain name may contain.
- [14]
The 'check the address bar' advice assumes the name there can be read correctly, which held while domain names could only contain English letters, digits, and a hyphen.
- [15]
Since 2003 domain names can use almost any writing system.
- [16]
In April 2017, Xudong Zheng registered a Cyrillic .com that Chrome, Firefox and Opera drew as almost indistinguishable from a real domain; Chromium has shown that name as Punycode ever since.
- [17]
Under ICU 78 and the 29-character list, 64 lowercase Cyrillic characters are in Chromium's allowed set and missing from the Cyrillic lookalike list.
- [18]
The research identifies five breakers; the first three meet the allowed-set and lookalike-list conditions today, and the last two met the allowed-set condition only before Chrome 148.
- [19]
Unicode 17.0 moved two of the breaker characters from Recommended to Uncommon_Use; Chrome 148, released in May 2026, moved to ICU 78.2, which carries Unicode 17, so both now fail check #1. Chrome 147 and earlier accept all five.
- [20]
A useful lookalike label must be written wholly in Cyrillic; several Latin letters have no Cyrillic substitute in Chromium's allowed set, and Chrome 148 also removed the substitutes for two more.
- [21]
Three of the five identified breakers still pass Chromium's stage 1 conditions in Chrome 148 and later.
- [22]
The five named breakers are about one in thirteen of the 64 characters that meet Chromium's first two conditions.
Sources
2 independent publishers whose own reporting we read for this story.
- https://haveibeensquatted.com/blog/
haveibeensquatted.com
1 article · October 9, 2026
- scworld.comNew characters allow lookalike domains to fool browsers
1 article · October 11, 2026
Topics and entities
Topics
- Browser security
- IDN homograph spoofing
- Phishing
Entities
- Google Chrome
- Have I Been Squatted
- Chromium
- Unicode Technical Standard #39