Použití podobných znaků Unicode k obejití ověřování
GitHub Ukázalo se, že je je náchylný k útoku, který vám umožňuje zmocnit se přístupu k účtu prostřednictvím manipulace se znaky Unicode v e-mailu. Problém je v tom, že některé znaky Unicode se při použití funkcí převodu na malá nebo velká písmena překládají na běžné znaky, které mají podobný styl (když je několik různých znaků přeloženo do jednoho znaku – například turecký znak „ı“ a „i“ " při převodu na velká písmena se převedou na "I").
Před kontrolou přihlašovacích parametrů v některých službách a aplikacích se údaje zadané uživatelem nejprve převedou na velká nebo malá písmena a poté se zkontrolují v databázi. Pokud služba umožňuje použití znaků unicode v přihlášení nebo e-mailu, pak může útočník použít podobné znaky unicode k provedení útoku, který manipuluje s kolizemi v Unicode Case Mapping Collisions.
Útočník na GitHubu mohl prostřednictvím formuláře pro obnovení zapomenutého hesla iniciujte odeslání kódu pro obnovení na jiný e-mail tak, že ve formuláři uvedete adresu obsahující znak unicode způsobující kolizi (například místo [chráněno e-mailem] byl uveden email mı[chráněno e-mailem]). Adresa prošla testem, protože byla převedena na velká písmena a odpovídala původní adrese ([chráněno e-mailem] ), ale při odesílání dopisu byl nahrazen tak, jak je, a obnovovací kód byl zaslán na falešnou adresu (mı[chráněno e-mailem]).
Některý z znaky, což způsobuje kolize při převodu registru:
ß 0x00DF SS
i 0x0131 I
ſ 0x017F S
ff 0xFB00 FF
0xFB01 FI
fl 0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k