{"id":100548,"date":"2021-06-20T10:22:54","date_gmt":"2021-06-20T08:22:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm"},"modified":"2021-06-20T10:22:54","modified_gmt":"2021-06-20T08:22:55","slug":"uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm","title":{"rendered":"Zranitelnost v j\u00e1d\u0159e Linuxu, kter\u00e1 se t\u00fdk\u00e1 s\u00ed\u0165ov\u00e9ho protokolu CAN BCM.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V j\u00e1d\u0159e Linux byla zji\u0161t\u011bna zranitelnost (CVE-2021-3609), kter\u00e1 umo\u017e\u0148uje m\u00edstn\u00edmu u\u017eivateli zv\u00fd\u0161it sv\u00e9 privilegium v syst\u00e9mu. Probl\u00e9m je zp\u016fsoben stavem z\u00e1vodu v implementaci protokolu CAN BCM a projevuje se ve verz\u00edch j\u00e1dra Linux od 2.6.25 po 5.13-rc6. V distribuc\u00edch z\u016fst\u00e1v\u00e1 probl\u00e9m zat\u00edm neopraven\u00fd (RHEL, Fedora, Debian, Ubuntu, SUSE, Arch).     <\/p>\n<p>V\u00fdzkumn\u00edk, kter\u00fd zranitelnost odhalil, dok\u00e1zal p\u0159ipravit exploit pro z\u00edsk\u00e1n\u00ed pr\u00e1v root na syst\u00e9mech s j\u00e1dry Linux 5.4 a nov\u011bj\u0161\u00edmi, v\u010detn\u011b mo\u017enosti \u00fasp\u011b\u0161n\u00e9ho proveden\u00ed \u00fatoku na Ubuntu 20.04.02 LTS. Nen\u00ed vylou\u010deno, \u017ee exploit bude p\u0159epracov\u00e1n i pro star\u0161\u00ed j\u00e1dra (v j\u00e1d\u0159e 5.4 byl k\u00f3d CAN BCM (net\/can\/bcm.c) p\u0159enesen z hrtimer_tasklet na HRTIMER_MODE_SOFT).      <\/p>\n<p>Protokol CAN BCM umo\u017e\u0148uje registrovat vlastn\u00ed zpracovatel zpr\u00e1v, kter\u00e9 p\u0159ich\u00e1zej\u00ed p\u0159es sb\u011brnici CAN (controller area network), a p\u0159ipojit ho k ur\u010dit\u00e9mu s\u00ed\u0165ov\u00e9mu socketu. P\u0159i p\u0159ijet\u00ed p\u0159\u00edchoz\u00ed zpr\u00e1vy je vyvol\u00e1na funkce bcm_rx_handler(). \u00dato\u010dn\u00edk m\u016f\u017ee vyu\u017e\u00edt stav z\u00e1vodu a dos\u00e1hnout uzav\u0159en\u00ed s\u00ed\u0165ov\u00e9ho socketu sou\u010dasn\u011b s vykon\u00e1v\u00e1n\u00edm bcm_rx_handler(). P\u0159i uzav\u0159en\u00ed socketu se vol\u00e1 funkce bcm_release(), ve kter\u00e9 je uvoln\u011bna pam\u011b\u0165 alokovan\u00e1 pro struktury bcm_op a bcm_sock, kter\u00e9 se st\u00e1le pou\u017e\u00edvaj\u00ed v je\u0161t\u011b vykon\u00e1van\u00e9m zpracovateli bcm_rx_handler(). Vznik\u00e1 situace vedouc\u00ed k p\u0159\u00edstupu k ji\u017e uvoln\u011bn\u00e9mu bloku pam\u011bti (use-after-free).    <\/p>\n<p>\u00datok spo\u010d\u00edv\u00e1 v otev\u0159en\u00ed dvou socket\u016f CAN BCM a jejich p\u0159ipojen\u00ed k rozhran\u00ed vcan. V prvn\u00edm socketu se provede vol\u00e1n\u00ed sendmsg() s flagem RX_SETUP pro nastaven\u00ed zpracovatele p\u0159\u00edchoz\u00edch zpr\u00e1v CAN, a ve druh\u00e9m socketu se provede vol\u00e1n\u00ed sendmsg() pro odesl\u00e1n\u00ed zpr\u00e1vy do prvn\u00edho socketu. Po p\u0159ijet\u00ed zpr\u00e1vy se spust\u00ed vol\u00e1n\u00ed bcm_rx_handler(), a \u00fato\u010dn\u00edk si vybere spr\u00e1vn\u00fd okam\u017eik a uzav\u0159e prvn\u00ed socket, co\u017e vede k vyvol\u00e1n\u00ed bcm_release() a uvoln\u011bn\u00ed struktur bcm_op a bcm_sock, p\u0159esto\u017ee pr\u00e1ce bcm_rx_handler() je\u0161t\u011b nen\u00ed dokon\u010dena.   <\/p>\n<p>Manipulac\u00ed s obsahem bcm_sock m\u016f\u017ee \u00fato\u010dn\u00edk p\u0159epsat ukazatel na funkci sk-&gt;sk_data_ready(sk), p\u0159esm\u011brovat prov\u00e1d\u011bn\u00ed a pomoc\u00ed technik orientovan\u00fdch na n\u00e1vrat (ROP - Return-Oriented Programming) zorganizovat p\u0159eps\u00e1n\u00ed parametru modprobe_path a dos\u00e1hnout v\u00fdkonu sv\u00e9ho k\u00f3du s pr\u00e1vy root. P\u0159i pou\u017eit\u00ed techniky ROP \u00fato\u010dn\u00edk nesna\u017e\u00ed um\u00edstit sv\u016fj k\u00f3d do pam\u011bti, ale pracuje ji\u017e existuj\u00edc\u00edmi kusy strojov\u00fdch instrukc\u00ed ve na\u010dten\u00fdch knihovn\u00e1ch, kter\u00e9 kon\u010d\u00ed instrukc\u00ed pro n\u00e1vrat \u0159\u00edzen\u00ed (obvykle se jedn\u00e1 o konce knihovn\u00edch funkc\u00ed). Pr\u00e1ce exploit\u016f se soust\u0159ed\u00ed na sestaven\u00ed \u0159et\u011bzce vol\u00e1n\u00ed podobn\u00fdch blok\u016f (\u201egadgets\u201c) pro z\u00edsk\u00e1n\u00ed po\u017eadovan\u00e9 funk\u010dnosti.      <center><img decoding=\"async\" alt=\"Zranitelnost v j\u00e1d\u0159e Linuxu, kter\u00e1 se t\u00fdk\u00e1 s\u00ed\u0165ov\u00e9ho protokolu CAN BCM.\" src=\"\/wp-content\/uploads\/2021\/06\/60534f0194a819c8401abf2ec53b3a9a.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>          <\/p>\n<p>K proveden\u00ed \u00fatoku je zapot\u0159eb\u00ed m\u00edt p\u0159\u00edstup k vytv\u00e1\u0159en\u00ed CAN socket\u016f a nastaven\u00e9 s\u00ed\u0165ov\u00e9 rozhran\u00ed vcan. Nezbytn\u00e1 opr\u00e1vn\u011bn\u00ed pro proveden\u00ed \u00fatoku m\u016f\u017ee z\u00edskat neprivilegovan\u00fd u\u017eivatel v kontejnerech vytv\u00e1\u0159en\u00fdch v syst\u00e9mech s aktivovanou podporou prostor\u016f jmen identifik\u00e1tor\u016f u\u017eivatel\u016f (user namespaces). Nap\u0159\u00edklad, user namespaces jsou ve v\u00fdchoz\u00edm nastaven\u00ed aktivov\u00e1ny v Ubuntu a Fedo\u0159e, ale nejsou povoleny v Debi\u00e1nu a RHEL.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=55359\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u044f\u0434\u0440\u0435 Linux \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2021-3609), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0433\u043e\u043d\u043a\u0438 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 CAN BCM \u0438 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0445 \u044f\u0434\u0440\u0430 Linux \u0441 2.6.25 \u043f\u043e 5.13-rc6. \u0412 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 (RHEL, Fedora, Debian, Ubuntu, SUSE, Arch). \u0412\u044b\u044f\u0432\u0438\u0432\u0448\u0438\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0433 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432 root [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":100549,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-100548","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u044f\u0434\u0440\u0435 Linux \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2021-3609), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u044f\u0434\u0440\u0435 Linux, \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b CAN BCM | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u044f\u0434\u0440\u0435 Linux \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2021-3609), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-06-20T08:22:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-06-20T08:22:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Zranitelnost v j\u00e1dru Linuxu, kter\u00e1 se dot\u00fdk\u00e1 s\u00ed\u0165ov\u00e9ho protokolu CAN BCM | ProHoster","description":"V j\u00e1dru Linuxu byla zji\u0161t\u011bna zranitelnost (CVE-2021-3609), kter\u00e1 umo\u017e\u0148uje lok\u00e1ln\u00edmu u\u017eivateli zv\u00fd\u0161it sv\u00e9 opr\u00e1vn\u011bn\u00ed v syst\u00e9mu.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u044f\u0434\u0440\u0435 Linux, \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b CAN BCM | ProHoster","og:description":"\u0412 \u044f\u0434\u0440\u0435 Linux \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2021-3609), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-yadre-linux-zatragivayushhaya-setevoj-protokol-can-bcm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-06-20T08:22:55+00:00","article:modified_time":"2021-06-20T08:22:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"100548","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-06-20 08:24:40","updated":"2022-10-01 08:48:35","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/100548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=100548"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/100548\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/100549"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=100548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=100548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=100548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}