PuTTY-s, Windowsi platvormal laialdaselt kasutatavas SSH-protokolli kliendis, leiti ohtlik haavatavus (CVE-2024-31497), mis vĂ”imaldab taastada kasutaja privaatvĂ”tit, mis on genereeritud NIST P-521 elliptilise kĂ”veraga ECDSA algoritmi kasutades (ecdsa-sha2-nistp521). PrivaatvĂ”tme leidmiseks on piisav analĂŒĂŒsida umbes 60 digiallkirja, mis on loodud probleemse vĂ”tmega.
Haavatavus avaldub alates PuTTY versioonist 0.68 ja on mĂ”jutanud ka tooteid, mis sisaldavad haavatavaid PuTTY versioone, nĂ€iteks FileZilla (3.24.1 â 3.66.5), WinSCP (5.9.5 â 6.3.2), TortoiseGit (2.4.0.2 â 2.15.0) ja TortoiseSVN (1.10.0 â 1.14.6). Probleem on lahendatud PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 ja TortoiseGit 2.15.0.1 uuendustes. PĂ€rast uuenduste paigaldamist soovitatakse kasutajatel genereerida uusi vĂ”tmeid ja eemaldada vanad avalikud vĂ”tmed failidest authorized_keys.
Haavatavus tuleneb arendajate tĂ€helepanuta jĂ€tmisest, kellel oli 521-bitise vĂ”tme genereerimiseks kasutatud initsialiseerimisvektorit (nonce), mis pĂ”hines 512-bitisel juhuslikul jĂ€rjestusel, arvates tĂ”enĂ€oliselt, et 512 bitist entropiat on piisavalt ja ĂŒlejÀÀnud 9 bitti ei oma olulist tĂ€htsust. Tulemuseks on see, et kĂ”ik PuTTY-s loodud suletud vĂ”tmed, kasutades algoritmi ecdsa-sha2-nistp521, olid esimesed 9 bitti initsialiseerimisvektoris alati nullid.
ECDSA ja DSA puhul on valearvutusteta juhuslike arvude generaatori kvaliteet ning tĂ€ielik juhuslike andmete katvus parameetrites, mida kasutatakse mooduli arvutamisel, ÀÀrmiselt tĂ€htsad, kuna isegi mĂ”ne bitiga initsialiseerimisvektorist informatsiooni mÀÀramine on piisav, et rĂŒnnata jĂ€rjestikku kogu suletud vĂ”ti taastamiseks. Selleks, et edukalt taastada vĂ”ti, piisab avaliku vĂ”tme olemasolust ja probleemse vĂ”tme kasutamisel genereeritud digiallkirjade analĂŒĂŒsist, et rĂŒndaja saaks teada andmeid. RĂŒnnak piirdub HNP (Hidden Number Problem) ĂŒlesande lahendamisega.
Vajalikud digitaalsed allkirjad on saadaval nĂ€iteks kasutaja ĂŒhendamisel pahatahtliku SSH-serveriga vĂ”i Git-serveriga, mis kasutab SSH-d transpordina. RĂŒnnaku jaoks vajalikud allkirjad on samuti saadaval, kui vĂ”tme kasutatakse mis tahes andmete, nĂ€iteks Git-kohustuste, allkirjastamiseks, kui SSH-agent Pageant suunab liiklust arendaja hostile. RĂŒndamine, saades vajalikke andmeid vĂ”tme taastamiseks MITM-rĂŒnnaku kĂ€igus, on vĂ€listatud, kuna SSH-s ei edastata allkirju avatud kujul.
On mĂ€rgitud, et sarnast mittetĂ€ielike algusvektorite kasutamist on rakendatud PuTTY-s ja ka teiste elliptsete kĂ€yrade puhul, kuid erinevate ECDSA P-521 algoritmide puhul ei piisa esinenud teabe leketest töövĂ”imeka vĂ”tme taastamisrĂŒnnaku teostamiseks. Teiste suurustega ECDSA vĂ”tmed ja Ed25519 vĂ”tmed ei ole rĂŒnnaku suhtes haavatavad.
Allikas: opennet.ru
