Shkallëzimi i bufrit në Toxcore, i shfrytëzuar përmes dërgimit të paketave UDP

Në Toxcore, implementimi referent i protokollit P2P për shkëmbim mesazhe Tox, u zbulua një vulnerabilitet (CVE-2021-44847) që potencialisht lejon iniciimin e ekzekutimit të kodit gjatë përpunimit të një pakete UDP të formuar posaçërisht. Të gjithë përdoruesit e aplikacioneve të bazuara në Toxcore, për të cilat nuk është çaktivizuar transporti UDP, janë të ndjeshëm ndaj këtij vulnerabiliteti. Për të kryer një sulm, mjafton të dërgohet një paketë UDP me dijeni për adresën IP, portin rrjetor dhe çelësin DHT të hapur të viktimës (kjo informacion është në dispozicion publik në DHT, çka do të thotë se sulmi mund të kryhet ndaj çdo përdoruesi ose nodi DHT).

Problemi u shfaq në versionet e toxcore nga 0.1.9 deri në 0.2.12 dhe u eliminua në versionin 0.2.13. Nga aplikacionet klient, përditësimin për eliminimin e vulnerabilitetit deri tani e ka lëshuar vetëm projekti qTox. Si një zgjidhje mbrojtëse, mund të çaktivizohet përdorimi i UDP, duke lënë mbështetje për TCP.

Vulnerabiliteti është shkaktuar nga mbushja e buffers në funksionin handle_request(), që ndodh për shkak të një llogaritjeje të gabuar të madhësisë së të dhënave në paketën rrjetore. Në veçanti, gjatësia e të dhënave të kriptuara përcaktohej në makron CRYPTO_SIZE, e cila ishte përcaktuar si "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", e cila më pas u përdor në operacionin e zbritjes "length — CRYPTO_SIZE". Për shkak të mungesës së kllapave në makro, në vend të zbritjes së shumës së të gjitha vlerave, u krye zbritja e 1 dhe shtimi i pjesëve të tjera. Shembuj, në vend të "length — (1 + 32 * 2 + 24)" madhësia e buffers kalkulohej si "length — 1 + 32 * 2 + 24", çka çonte në shkrimin e të dhënave në stek që ishin përtej buffers.

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster