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