GitHub on rünnitud rünnak, mis võimaldab pääseda kontole Unicode-sümbolite manipuleerimise kaudu e-kirjas. Probleem on seotud sellega, et mõned Unicode-sümbolid muudetakse väikesteks või suurteks tähtedeks konverteerimise funktsioonide rakendamisel tavaliste sümboliteks, mis on sarnased välimuselt (kui mitu erinevat sümbolit muudetakse üheks sümboliks — näiteks türgi sümbol «ı» ja «i» muutuvad suurte tähtedena «I»).
Enne sisselogimisparameetrite kontrollimist mõnedes teenustes ja rakendustes muudetakse kasutaja edastatud andmed esmalt suurteks või väikesteks tähtedeks ja seejärel kontrollitakse andmebaasis. Kui teenus lubab kasutada Unicode-sümboleid sisselogimisel või e-kirjas, saab ründaja kasutada sarnaseid Unicode-sümboleid rünnaku sooritamiseks, mis manipuleerib sümbolite registrite konversioonide tabelite kollisioonidega (Unicode Case Mapping Collisions).
‘ß’.toUpperCase() == ‘ss’.toUpperCase() // 0x0131
‘K’.toLowerCase() == ‘K’.toLowerCase() // 0x212A
‘John@Gıthub.com’.toUpperCase() == ‘John@Github.com’.toUpperCase()
GitHub oli rünnaku alla taotleda parooli taastamise vormi kaudu koodi saatmist teisele e-kirjale, määrates vormis aadressi, mis sisaldab Unicode-sümbolit, mis põhjustab kollisiooni (näiteks, asemel mike@example.org määrati aadress mıke@example.org). Aadress läbis kontrolli, kuna see muundati suurteks tähtedeks ja kattus algse aadressiga (mike@example.org), kuid e-kirja saatmisel kasutati seda nii nagu see oligi ning taastamiskood saadeti valele aadressile (mıke@example.org).
Mõned neist , mis põhjustavad kollisioone registrite muutmise ajal:
ß 0x00DF SS
ı 0x0131 I
ſ 0x017F S
ff 0xFB00 FF
fi 0xFB01 FI
fl 0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k
Allikas: opennet.ru
