{"id":119573,"date":"2024-08-22T21:43:01","date_gmt":"2024-08-22T19:43:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux"},"modified":"2024-08-22T21:43:01","modified_gmt":"2024-08-22T19:43:01","slug":"razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux","title":{"rendered":"Analysis of the essence of SBAT and the issues with the Windows update that affected Linux booting","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Matthew Garrett, a well-known Linux kernel developer who once received an award from the Free Software Foundation for his contributions to open-source software, explained the essence of the SBAT (Secure Boot Advanced Targeting) mechanism, created to block vulnerabilities in the bootloader without revoking digital signatures, as well as its role in the recent incident involving an update for Windows that led to the failure of some Linux distributions to boot when installed alongside Windows on systems with UEFI Secure Boot enabled. In short, both Microsoft, which didn't fully test the update and applied it to systems it shouldn't have, and the developers of some Linux distributions, who didn't update the GRUB bootloader or SBAT generation number when vulnerabilities were found in GRUB, share the blame.     <\/p>\n<p>Below is a translation of Garrett's note:    <\/p>\n<blockquote>\n<p>When the UEFI Secure Boot specification was being developed, all participants were, let's say, a bit naive. The main security model of Secure Boot is that all code that runs in a privileged environment at the kernel level must be verified before execution \u2014 the firmware verifies the bootloader, the bootloader verifies the kernel, and the kernel verifies any additional code loaded at runtime. Now we have a trusted environment to enforce any other security policy we want. Clearly, people can make mistakes, but the specification includes a way to revoke signed components that have proven to be untrustworthy: simply add the hash of the untrustworthy code to a variable, and then refuse to load anything with that hash, even if it is signed by a trusted key.    <\/p>\n<p>Unfortunately, it turns out that the problem lies in scale. Every Linux distribution operating within the Secure Boot ecosystem generates its own bootloader binaries, each with its own hash. If a vulnerability is discovered in the source code of such a bootloader, it necessitates revoking a large number of different binaries. The memory allocated for storing the variable containing all these hashes is limited. There simply isn\u2019t enough space to keep adding a new set of hashes every time it turns out that GRUB (the bootloader originally written at a time when boot protection was not practiced, and which has several separate parsers for image files and font files) has yet another mechanism for an attacker to execute arbitrary code, which is why a different solution was required.    <\/p>\n<p>This solution is called SBAT. The overall concept of SBAT is quite simple. Each important component in the boot chain declares a security generation, which is included in the signed binary file. When a vulnerability is found and fixed, this generation is incremented. Then an update can be issued that specifies the minimum generation \u2014 boot component will look at the next item in the chain, compare its name and generation number with those stored in the firmware variable, and decide whether to execute it based on that. Instead of revoking a large number of individual hashes, one update can be released that simply says, 'Any version of GRUB with a security generation below this number is considered untrusted.'    <\/p>\n<p>So why has this suddenly become relevant? SBAT was developed jointly by the Linux community and Microsoft, and Microsoft decided to release an update for Windows that instructed systems not to trust versions of GRUB with a security generation below a certain level. This was done because these versions of GRUB had real security vulnerabilities that allowed attackers to break the secure boot chain of Windows, and we have seen real examples of malware attempting to do this (Black Lotus exploited a vulnerability in the Windows bootloader, but the vulnerability in GRUB was just as effective). From a purely security perspective, this is a perfectly legitimate desire.    <\/p>\n<p>Now, regarding the message 'Something went completely wrong' and the inability to boot as a result of this update. It is output by shim, not any code from Microsoft. Shim takes SBAT updates into account, and in order not to violate the security principles adopted by other bootloaders in the system, even though Microsoft released an SBAT update, it is actually the Linux bootloader that refuses to launch older versions of GRUB. Everything works as it should.    <\/p>\n<p>The problem people faced is that several Linux distributions did not release GRUB versions with the newer security generation, and thus these GRUB versions are considered insecure (it's worth noting that GRUB is signed by the distributions themselves, not Microsoft, so there is no external lag here). In Microsoft's design, the Windows Update was supposed to apply the SBAT update only to systems running solely Windows, while any dual-boot installations would remain vulnerable to attacks until the installed distribution updated GRUB and upgraded the SBAT generation. Unfortunately, as is now clear, this did not work as intended, and at least some dual-boot systems applied the update, while the shim of that distribution refused to load that distribution's GRUB.    <\/p>\n<p>What is the outcome? Microsoft (for understandable reasons) did not want Windows to be attackable via a vulnerable version of GRUB that could be deceived into executing arbitrary code and then implanting a bootkit into the Windows kernel during boot. Microsoft accomplished this by releasing a Windows update that updated the SBAT variable, indicating that vulnerable versions of GRUB should not be booted on these systems. The first-stage bootloader provided by the distribution read this variable, read the SBAT partition from the installed version of GRUB, realized they conflicted, and refused to load grub with the message 'Something went completely wrong.' This update was not intended to apply to dual-boot systems, but it still did.     <\/p>\n<p>In summary:    <\/p>\n<p>1) Microsoft applied the update to systems that it should not have been applied to.  <\/p>\n<p>2) Some Linux distributions did not update the GRUB bootloader and the SBAT security generation when vulnerabilities were found in GRUB.    <\/p>\n<p>As a result, some people are unable to boot their systems. I believe there are many parties at fault here. Microsoft should have conducted more testing to ensure that dual-boot installations could be accurately recognized. However, distributions providing signed bootloaders must ensure they update them and keep security generations current, because otherwise they provide an attack vector that can be used to compromise other operating systems, which is a kind of violation of the social contract surrounding all of this.    <\/p>\n<p>Unfortunately, the victims here are primarily end-users who find that their system suddenly refuses to boot the OS they wish to load. This should never happen. I don't believe that polling end-users about whether they want secure boot updates will yield a good outcome, and while I vaguely lean towards the view that UEFI secure boot is not something that benefits most end-users, it is also something you don't want to discover after incidents like this, so I sympathize with it being enabled by default; hence, I support its default enablement and share Microsoft's choice, except for the failed attempt to avoid updates on dual-boot systems.    <\/p>\n<p>In any case, I was heavily involved in implementing this mechanism for Linux back in 2012 and wrote the first prototype of Shim (which is now a significantly better bootloader supported by a wider range of people, and which I haven't touched in several years), so if you want to blame someone, please feel free to blame me. This is not something that should have happened, and if you're not Microsoft or a Linux distribution, it's not your fault. I apologize.      <\/p><\/blockquote>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61745\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044d\u0442\u044c\u044e \u0413\u0430\u0440\u0440\u0435\u0442 (Matthew Garrett), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439 \u043e\u0442 \u0424\u043e\u043d\u0434\u0430 \u0421\u041f\u041e \u043f\u0440\u0435\u043c\u0438\u044e \u0437\u0430 \u0432\u043a\u043b\u0430\u0434 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u041f\u041e, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u0441\u0443\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 SBAT (Secure Boot Advanced Targeting), \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0435 \u0431\u0435\u0437 \u043e\u0442\u0437\u044b\u0432\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u0435\u0433\u043e \u0440\u043e\u043b\u0438 \u0432 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u043c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0435 \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f Windows, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u043b\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-119573","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044d\u0442\u044c\u044e \u0413\u0430\u0440\u0440\u0435\u0442 (Matthew Garrett), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439 \u043e\u0442 \u0424\u043e\u043d\u0434\u0430 \u0421\u041f\u041e \u043f\u0440\u0435\u043c\u0438\u044e \u0437\u0430 \u0432\u043a\u043b\u0430\u0434 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u041f\u041e, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u0441\u0443\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 SBAT (Secure Boot Advanced Targeting).\" \/>\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\/en\/blog\/news\/razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\u0420\u0430\u0437\u0431\u043e\u0440 \u0441\u0443\u0442\u0438 SBAT \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a Windows, \u043f\u043e\u0432\u043b\u0438\u044f\u0432\u0448\u0438\u043c \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044d\u0442\u044c\u044e \u0413\u0430\u0440\u0440\u0435\u0442 (Matthew Garrett), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439 \u043e\u0442 \u0424\u043e\u043d\u0434\u0430 \u0421\u041f\u041e \u043f\u0440\u0435\u043c\u0438\u044e \u0437\u0430 \u0432\u043a\u043b\u0430\u0434 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u041f\u041e, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u0441\u0443\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 SBAT (Secure Boot Advanced Targeting).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux\" \/>\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=\"2024-08-22T19:43:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-08-22T19:43:01+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\udd47Exploring the essence of SBAT and the update issues with Windows that affected Linux boot | ProHoster","description":"Matthew Garrett, a well-known Linux kernel developer who once received a prize from the Free Software Foundation for his contributions to open-source, explained the essence of the SBAT (Secure Boot Advanced Targeting) mechanism.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\u0420\u0430\u0437\u0431\u043e\u0440 \u0441\u0443\u0442\u0438 SBAT \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a Windows, \u043f\u043e\u0432\u043b\u0438\u044f\u0432\u0448\u0438\u043c \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 Linux | ProHoster","og:description":"\u041c\u044d\u0442\u044c\u044e \u0413\u0430\u0440\u0440\u0435\u0442 (Matthew Garrett), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439 \u043e\u0442 \u0424\u043e\u043d\u0434\u0430 \u0421\u041f\u041e \u043f\u0440\u0435\u043c\u0438\u044e \u0437\u0430 \u0432\u043a\u043b\u0430\u0434 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u041f\u041e, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u0441\u0443\u0442\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 SBAT (Secure Boot Advanced Targeting).","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/razbor-suti-sbat-i-problem-s-obnovleniem-k-windows-povliyavshim-na-zagruzku-linux","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":"2024-08-22T19:43:01+00:00","article:modified_time":"2024-08-22T19:43:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"119573","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":"default","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":"2026-01-23 06:04:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 06:04:19","updated":"2026-01-23 06:04:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/119573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=119573"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/119573\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=119573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=119573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=119573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}