Buffer overflow แž“แŸ…แž€แŸ’แž“แžปแž„ 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

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹