GitHub utsatt för en attack som möjliggör Ă„tkomst till kontot genom manipulation av Unicode-tecken i e-post. Problemet Ă€r att vissa Unicode-tecken, vid anvĂ€ndning av funktioner för att konvertera till smĂ„ eller versaler, översĂ€tts till vanliga tecken som liknar varandra (nĂ€r flera olika tecken översĂ€tts till ett tecken â till exempel, nĂ€r det turkiska tecknet «ı» och «i» omvandlas till versal blir de bĂ„da «I»).
Innan parametrarna för inloggning kontrolleras i vissa tjÀnster och applikationer omvandlas anvÀndardata först till stora eller smÄ bokstÀver och kontrolleras sedan i databasen. Om tjÀnsten tillÄter anvÀndning av unicode-tecken i anvÀndarnamn eller e-post, kan en angripare anvÀnda liknande unicode-tecken för att genomföra en attack som manipulerar kollisioner i tabeller för teckenkonvertering (Unicode Case Mapping Collisions).
âĂâ.toUpperCase() == âssâ.toUpperCase() // 0x0131
ââȘâ.toLowerCase() == âKâ.toLowerCase() // 0x212A
âJohn@Gıthub.comâ.toUpperCase() == âJohn@Github.comâ.toUpperCase()
I GitHub kunde angriparen initiera en begÀran om ÄterstÀllningskod till en annan e-postadress via formulÀret för ÄterstÀllning av glömt lösenord genom att ange en adress i formulÀret som innehÄller ett unicode-tecken som orsakar kollision (till exempel, istÀllet för mike@example.org anges e-postadressen mıke@example.org). Adressen passerade kontrollen eftersom den omvandlades till versaler och matchade den ursprungliga adressen (mike@example.org), men nÀr meddelandet skickades anvÀndes den direkt och ÄterstÀllningskoden skickades till den falska adressen (mıke@example.org).
NÄgra , som orsakar kollisioner vid konvertering av fall:
Ă 0x00DF SS
ı 0x0131 I
Ćż 0x017F S
ïŹ 0xFB00 FF
ïŹ 0xFB01 FI
ïŹ 0xFB02 FL
ïŹ 0xFB03 FFI
ïŹ 0xFB04 FFL
ïŹ
0xFB05 ST
ïŹ 0xFB06 ST
âȘ 0x212A k
KĂ€lla: opennet.ru
