ΠŸΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° Π² Toxcore сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° UDP ΠΏΠ°ΠΊΠ΅Ρ‚

Toxcore, Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π°Ρ‚Π° рСализация Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Tox P2P, ΠΈΠΌΠ° уязвимост (CVE-2021-44847), която ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° задСйства изпълнСниС Π½Π° ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° спСциално създадСн UDP ΠΏΠ°ΠΊΠ΅Ρ‚. Всички ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Toxcore прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ нямат Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ UDP транспорт, са засСгнати ΠΎΡ‚ уязвимостта. Π—Π° Π΄Π° Π°Ρ‚Π°ΠΊΡƒΠ²Π°Ρ‚Π΅, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ UDP ΠΏΠ°ΠΊΠ΅Ρ‚, Π·Π½Π°Π΅ΠΉΠΊΠΈ IP адрСса, мрСТовия ΠΏΠΎΡ€Ρ‚ ΠΈ публичния DHT ΠΊΠ»ΡŽΡ‡ Π½Π° ΠΆΠ΅Ρ€Ρ‚Π²Π°Ρ‚Π° (Ρ‚Π°Π·ΠΈ информация Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π² DHT, Ρ‚.Π΅. Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π½Π° всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈΠ»ΠΈ DHT възСл).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°ΡˆΠ΅ във вСрсии Π½Π° toxcore ΠΎΡ‚ 0.1.9 Π΄ΠΎ 0.2.12 ΠΈ бСшС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ във вСрсия 0.2.13. Π‘Ρ€Π΅Π΄ клиСнтскитС прилоТСния само ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ qTox досСга Π΅ пуснал актуализация, която Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° уязвимостта. ΠšΠ°Ρ‚ΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° сигурност ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ UDP, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ TCP ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.

Уязвимостта Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° във функцията handle_request(), ΠΊΠΎΠ΅Ρ‚ΠΎ възниква ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ изчисляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² мрСТовия ΠΏΠ°ΠΊΠ΅Ρ‚. По-ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ, Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ бСшС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² макроса CRYPTO_SIZE, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", ΠΊΠΎΠΉΡ‚ΠΎ впослСдствиС бСшС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² опСрацията Π·Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ "дълТина - CRYPTO_SIZE". ΠŸΠΎΡ€Π°Π΄ΠΈ липсата Π½Π° скоби Π² макроса, вмСсто Π΄Π° ΠΈΠ·Π²Π°Π΄ΠΈ сумата ΠΎΡ‚ всички стойности, Ρ‚ΠΎΠΉ ΠΈΠ·Π²Π°Π΄ΠΈ 1 ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈ останалитС части. НапримСр, вмСсто "дълТина - (1 + 32 * 2 + 24)", Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° бСшС изчислСн ΠΊΠ°Ρ‚ΠΎ "дълТина - 1 + 32 * 2 + 24", ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ прСзаписванС Π½Π° Π΄Π°Π½Π½ΠΈ Π² стСка ΠΎΡ‚Π²ΡŠΠ΄ Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€