Toxcore-da bufer daşması UDP paketi göndərməklə istismar olunur

Tox P2P mesajlaşma protokolunun istinad tətbiqi olan Toxcore, xüsusi hazırlanmış UDP paketini emal edərkən kodun icrasını potensial olaraq işə sala bilən zəifliyə (CVE-2021-44847) malikdir. UDP nəqliyyatını deaktiv etməyən Toxcore əsaslı proqramların bütün istifadəçiləri zəiflikdən təsirlənir. Hücum etmək üçün qurbanın IP ünvanını, şəbəkə portunu və açıq DHT açarını bilən UDP paketini göndərmək kifayətdir (bu məlumat DHT-də açıqdır, yəni hücum istənilən istifadəçi və ya DHT qovşağında həyata keçirilə bilər).

Problem 0.1.9-dan 0.2.12-yə qədər olan toxcore buraxılışlarında mövcud idi və 0.2.13 versiyasında həll edildi. Müştəri proqramları arasında yalnız qTox layihəsi bu günə qədər zəifliyi aradan qaldıran bir yeniləmə buraxmışdır. Təhlükəsizlik həlli olaraq, TCP dəstəyini qoruyarkən UDP-ni deaktiv edə bilərsiniz.

Zəifliyə, şəbəkə paketində verilənlərin ölçüsünün düzgün hesablanmaması nəticəsində baş verən handle_request() funksiyasında bufer daşması səbəb olur. Konkret olaraq, şifrələnmiş məlumatın uzunluğu "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE" kimi müəyyən edilmiş CRYPTO_SIZE makroda müəyyən edilmişdir ki, bu da sonradan "uzunluq - CRYPTO_SIZE" çıxarma əməliyyatında istifadə edilmişdir. Makroda mötərizə olmadığına görə bütün qiymətlərin cəmini çıxmaq əvəzinə 1-i çıxarıb, qalan hissələri əlavə edib. Məsələn, "uzunluq - (1 + 32 * 2 + 24)" əvəzinə bufer ölçüsü "uzunluq - 1 + 32 * 2 + 24" kimi hesablanmışdır ki, bu da bufer sərhədindən kənarda yığındakı məlumatların üzərinə yazılması ilə nəticələndi.

Mənbə: opennet.ru

Добавить комментарий