{"id":111731,"date":"2025-10-27T07:00:00","date_gmt":"2025-10-27T14:00:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/oldnewthing\/?p=111731"},"modified":"2025-10-27T09:34:22","modified_gmt":"2025-10-27T16:34:22","slug":"20251027-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20251027-00\/?p=111731","title":{"rendered":"Dubious security vulnerability: Denial of service by loading a very large file"},"content":{"rendered":"<p>A denial of service vulnerability report was filed against a program, let&#8217;s call it Notepad. The actual text of the report was very hard to understand because the grammar was all messed up. I&#8217;ll give the finder the benefit of the doubt on the assumption that they are not a native English speaker. Here&#8217;s a cleaned-up version:<\/p>\n<blockquote class=\"q\"><p>If you open multiple documents, one very large document and several small documents, and then try to exit all of them at once, the program will take a very long time saving the large document, resulting in a denial of service against the small documents.<\/p><\/blockquote>\n<p>I&#8217;m not sure what the point is here. The program does eventually finish saving the large document, so everything works out in the end. Are they suggesting that the program should save the smallest documents first? But then wouldn&#8217;t that be a denial of service against the large document if you had lots of small documents?<\/p>\n<p>But wait, let&#8217;s ask the standard questions.<\/p>\n<p>Who is the attacker?<\/p>\n<p>I guess the attacker is the person who opened the very large document.<\/p>\n<p>Who is the victim?<\/p>\n<p>The victim is the person who is unable to save their small documents because the large document is hogging the program.<\/p>\n<p>What has the attacker gained?<\/p>\n<p>The attacker has annoyed the victim temporarily.<\/p>\n<p>But wait, the attacker and the victim are the same person!<\/p>\n<p>It&#8217;s not a security vulnerability that you have the power to annoy yourself. Other ways include &#8220;Putting itching powder in your pants&#8221; and &#8220;Throwing your glasses in the trash.&#8221;<\/p>\n<p>Furthermore, there is no impact on other users, or even to other apps by this user. The only person you&#8217;re denying service to is yourself.<\/p>\n<p>If you&#8217;re concerned about the order in which files are saved on close, you could explicitly close them in the desired order, like, I dunno, most important files first? Removable drives first?<\/p>\n<p>And really, it&#8217;s not clear what the finder was expecting here. You loaded a large file, and now you&#8217;re saving it. Why is it surprising that this takes a long time?<\/p>\n<p>This was resolved as &#8220;Not a vulnerability&#8221; with the subcategory &#8220;By design.&#8221; But sometimes I wish there was subcategory &#8220;So what did you expect?&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I mean, it&#8217;s what you asked it to do.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-111731","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-other"],"acf":[],"blog_post_summary":"<p>I mean, it&#8217;s what you asked it to do.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/111731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=111731"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/111731\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=111731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=111731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=111731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}