Mae GitHub wedi rhwystro bysellau SSH ar gyfer defnyddwyr cleientiaid Git sy'n defnyddio'r llyfrgell JavaScript pΓ’r i gynhyrchu allweddi. Er enghraifft, cafodd allweddi'r cleient Git GitKraken eu rhwystro. Mae'r bregusrwydd yn arwain at gynhyrchu allweddi RSA rhagweladwy oherwydd gwall sy'n lleihau ansawdd yr entropi yn sylweddol wrth gynhyrchu dilyniant ar hap ar gyfer yr allweddi. Roedd y mater yn sefydlog mewn datganiadau bysellbad 1.0.4 a GitKraken 8.0.1.
Y rheswm am y bregusrwydd oedd y defnydd o'r alwad βb.putByte(String.fromCharCode(nesaf & 0xFF))β yn ystod y broses cynhyrchu allweddol, er gwaethaf y ffaith bod y dull fromCharCode wedi'i alw eto yn y dull putByte. Arweiniodd galw oCharCode ddwywaith (βString.fromCharCode( String.fromCharCode(nesaf & 0xFF)β) at y rhan fwyaf oβr byffer entropiβn cael ei lenwi Γ’ sero, h.y. cynhyrchwyd yr allwedd yn seiliedig ar ddata βar hapβ, 97% yn cynnwys sero.
Ffynhonnell: opennet.ru