Buffer gainezkatzea Toxcore-n UDP pakete bat bidaliz ustiatu da

Toxcore-k, Tox P2P mezularitza-protokoloaren erreferentziazko inplementazioak, ahultasun bat du (CVE-2021-44847) berariaz landutako UDP pakete bat prozesatzen duenean kodearen exekuzioa eragin dezakeena. UDP garraioa desgaituta ez duten Toxcore-n oinarritutako aplikazioen erabiltzaile guztiak kaltetuta daude ahultasunak. Erasoa egiteko, nahikoa da biktimaren IP helbidea, sareko ataka eta DHT gako publikoa jakinda UDP pakete bat bidaltzea (informazio hori publikoki eskuragarri dago DHTn, hau da, edozein erabiltzaile edo DHT nodotan egin daiteke erasoa).

Arazoa 0.1.9tik 0.2.12 bitarteko toxcore bertsioetan zegoen eta 0.2.13 bertsioan konpondu zen. Bezeroen aplikazioen artean, qTox proiektuak bakarrik kaleratu du orain arte ahultasuna kentzen duen eguneraketa bat. Segurtasun konponbide gisa, UDP desgai dezakezu TCP euskarria mantenduz.

Zaurgarritasuna handle_request() funtzioan buffer gainezkatzeak eragiten du, sare-pakete bateko datu-tamainaren kalkulu okerra dela eta. Zehazki, enkriptatutako datuen luzera CRYPTO_SIZE makroan zehaztu zen, "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE" gisa definitu zena, ondoren "luzera - CRYPTO_SIZE" kenketa eragiketan erabili zena. Makroan parentesirik ez zegoenez, balio guztien batura kendu beharrean, 1 kendu eta gainerako zatiak gehitu zituen. Esate baterako, "luzera - (1 + 32 * 2 + 24)" ordez, buffer-aren tamaina "luzera - 1 + 32 * 2 + 24" gisa kalkulatu zen, eta horrek pilako datuak gainidaztea eragin zuen bufferaren mugatik haratago.

Iturria: opennet.ru

Gehitu iruzkin berria