USB గాడ్జెట్లో, ఒక కెర్నల్ సబ్సిస్టమ్ Linuxక్లయింట్ USB పరికరాలను సృష్టించడానికి మరియు USB పరికరాలను అనుకరించడానికి సాఫ్ట్వేర్ ఇంటర్ఫేస్ను అందించే USB గాడ్జెట్ APIలో ఒక దుర్బలత్వం (CVE-2021-39685) గుర్తించబడింది. ఈ దుర్బలత్వం కెర్నల్ సమాచార లీకేజీకి, క్రాష్కు, లేదా కెర్నల్ స్థాయిలో ఏకపక్ష కోడ్ అమలుకు దారితీయవచ్చు. rndis, hid, uac1, uac1_legacy, మరియు uac2 వంటి USB గాడ్జెట్ APIని ఉపయోగించి అమలు చేయబడిన వివిధ పరికర తరగతులను తారుమారు చేయడం ద్వారా, ప్రత్యేకాధికారం లేని స్థానిక వినియోగదారు ఈ దాడిని నిర్వహిస్తారు.
ఇటీవల విడుదల చేసిన కెర్నల్ అప్డేట్లలో ఈ సమస్య పరిష్కరించబడింది. Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 మరియు 4.4.295. పంపిణీలలో సమస్య పరిష్కరించబడలేదు (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch). ఈ దుర్బలత్వాన్ని ప్రదర్శించడానికి ఒక నమూనా ఎక్స్ప్లాయిట్ సిద్ధం చేయబడింది.
గాడ్జెట్ డ్రైవర్లు rndis, hid, uac1, uac1_legacy మరియు uac2లో డేటా బదిలీ అభ్యర్థన హ్యాండ్లర్లలో బఫర్ ఓవర్ఫ్లో కారణంగా సమస్య ఏర్పడింది. దుర్బలత్వాన్ని ఉపయోగించడం ఫలితంగా, ఒక ప్రత్యేక నియంత్రణ అభ్యర్థనను స్టాటిక్ బఫర్ యొక్క పరిమాణాన్ని మించిన wLength ఫీల్డ్ విలువతో ప్రత్యేక నియంత్రణ అభ్యర్థనను పంపడం ద్వారా ప్రత్యేకించబడని దాడి చేసే వ్యక్తి కెర్నల్ మెమరీకి ప్రాప్యతను పొందవచ్చు, దీని కోసం 4096 బైట్లు ఎల్లప్పుడూ కేటాయించబడతాయి (USB_COMP_EP0_BUFSIZ). దాడి సమయంలో, వినియోగదారు స్థలంలో ఒక ప్రత్యేకించబడని ప్రక్రియ 65 KB డేటాను కెర్నల్ మెమరీలోకి చదవగలదు లేదా వ్రాయగలదు.
మూలం: opennet.ru
