GitHub yn agored i ymosodiad sy'n caniatáu mynediad i gyfrifon trwy drin cymeriadau Unicode mewn negeseuon e-bost. Mae'r broblem yn deillio o'r ffaith bod rhai cymeriadau Unicode, pan gânt eu trosi'n llythrennau bach neu fawr, yn cael eu trosi'n gymeriadau rheolaidd â siapiau tebyg (mae hyn yn digwydd pan fydd sawl cymeriad gwahanol yn cael eu trosi'n un cymeriad—er enghraifft, mae'r "ı" a'r "i" Twrcaidd yn cael eu trosi'n "I" pan gânt eu trosi'n briflythrennau).
Cyn dilysu manylion mewngofnodi, mae rhai gwasanaethau a chymwysiadau yn trosi data a gyflenwir gan ddefnyddwyr i lythrennau mawr neu fach yn gyntaf ac yna'n ei wirio yn erbyn y gronfa ddata. Os yw'r gwasanaeth yn caniatáu cymeriadau Unicode yn y mewngofnodi neu'r e-bost, gall ymosodwr ddefnyddio cymeriadau Unicode tebyg i gyflawni ymosodiad sy'n trin gwrthdrawiadau mapio llythrennau mawr Unicode.
'ß'.iUpperCase() == 'ss'.iUpperCase() // 0x0131
'K'.iLlythyrenIsaf() == 'K'.iLlythyrenIsaf() // 0x212A
'John@Github.com'.iUpperCase() == 'John@Github.com'.iUpperCase()
Ymosodwr GitHub drwy'r ffurflen adfer cyfrinair anghofiedig, dechreuwch anfon y cod adfer i gyfeiriad e-bost arall drwy nodi yn y ffurflen gyfeiriad sy'n cynnwys cymeriad Unicode sy'n achosi gwrthdrawiad (er enghraifft, yn lle mike@example.org, nodwyd yr e-bost mıke@example.org). Pasiodd y cyfeiriad y gwiriad oherwydd iddo gael ei drawsnewid i briflythrennau ac yn cyfateb i'r cyfeiriad gwreiddiol (mike@example.org), ond pan anfonwyd yr e-bost, cafodd ei amnewid fel y mae ac anfonwyd y cod adfer i'r cyfeiriad ffug (mıke@example.org).
Rhai o , gan achosi gwrthdrawiadau yn ystod trosi cofrestr:
ß 0x00DF SS
i 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
Ffynhonnell: opennet.ru
