{"id":66542,"date":"2026-06-28T03:26:17","date_gmt":"2026-06-28T03:26:17","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=66542"},"modified":"2026-06-28T03:26:17","modified_gmt":"2026-06-28T03:26:17","slug":"fsfcntl-fix-softirq-unsafe-lock-order-in-fasync-signaling","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=66542","title":{"rendered":"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;&#8221;,&#8221;description&#8221;:&#8221;In the Linux kernel, the following vulnerability has been resolved:\\n\\nfs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling\\n\\nA SOFTIRQ-safe to SOFTIRQ-unsafe lock order deadlock can occur in\\nsend_sigio() and send_sigurg() when a process group receives a signal.\\n\\nWhen FASYNC is configured for a process group (PIDTYPE_PGID), both\\nfunctions use read_lock(\\u0026tasklist_lock) to traverse the task list.\\nHowever, they are frequently called from softirq context:\\n- send_sigio() via input_inject_event -\\u003e kill_fasync\\n- send_sigurg() via tcp_check_urg -\\u003e sk_send_sigurg (NET_RX_SOFTIRQ)\\n\\nThe deadlock is caused by the rwlock writer fairness mechanism:\\n1. CPU 0 (process context) holds read_lock(\\u0026tasklist_lock) in do_wait().\\n2. CPU 1 (process context) attempts write_lock(\\u0026tasklist_lock) in\\n   fork() or exit() and spins, which blocks all new readers.\\n3. CPU 0 is interrupted by a softirq (e.g., TCP URG packet reception).\\n4. The softirq calls send_sigurg() and attempts to acquire\\n   read_lock(\\u0026tasklist_lock), deadlocking because CPU 1 is waiting.\\n\\nSince PID hashing and do_each_pid_task() traversals are already\\nRCU-protected, the read_lock on tasklist_lock is no longer strictly\\nrequired for safe traversal. Fix this by replacing tasklist_lock with\\nrcu_read_lock(), aligning the process group signaling path with the\\nsingle-PID path. This also mitigates a potential remote denial of\\nservice vector via TCP URG packets.\\n\\nLockdep splat:\\n=====================================================\\nWARNING: SOFTIRQ-safe -\\u003e SOFTIRQ-unsafe lock order detected\\n[&#8230;]\\nChain exists of:\\n  \\u0026dev-\\u003eevent_lock &#8211;\\u003e \\u0026f_owner-\\u003elock &#8211;\\u003e tasklist_lock\\n\\nPossible interrupt unsafe locking scenario:\\n       CPU0                    CPU1\\n       &#8212;-                    &#8212;-\\n  lock(tasklist_lock);\\n                           local_irq_disable();\\n                           lock(\\u0026dev-\\u003eevent_lock);\\n                           lock(\\u0026f_owner-\\u003elock);\\n  \\u003cInterrupt\\u003e\\n    lock(\\u0026dev-\\u003eevent_lock);\\n\\n*** DEADLOCK ***&#8221;,&#8221;published&#8221;:&#8221;2026-06-24T16:26:04.419Z&#8221;,&#8221;modified&#8221;:&#8221;2026-06-28T06:37:04.247Z&#8221;,&#8221;type&#8221;:&#8221;cve&#8221;,&#8221;title&#8221;:&#8221;fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling&#8221;,&#8221;source&#8221;:&#8221;Linux&#8221;,&#8221;references&#8221;:&#8221;https:\/\/git.kernel.org\/stable\/c\/54626335ea4174ab2d9a183b511d825f6765e47b\\nhttps:\/\/git.kernel.org\/stable\/c\/897d6a7247739fb1528f98c575df4f2e5de7f994\\nhttps:\/\/git.kernel.org\/stable\/c\/32dbd5ce4be3a3ed7e00f8af18795cc84fc50a33\\nhttps:\/\/git.kernel.org\/stable\/c\/b5fa9e32fb6718f70c986ee14dd5d01b4846f331\\nhttps:\/\/git.kernel.org\/stable\/c\/1bee417678f1135e35b25a37734db46aa94258d2\\nhttps:\/\/git.kernel.org\/stable\/c\/20a93e397abe850c49b6fa0e8cc827b5f634a8f5\\nhttps:\/\/git.kernel.org\/stable\/c\/bfcc8e8d8a495bb34cae9e620adfb75fb13a3954\\nhttps:\/\/git.kernel.org\/stable\/c\/36c1b57b2ecf3c61ac93f5f07bd29b6f21e226ed&#8221;,&#8221;id&#8221;:&#8221;CVE-2026-52946&#8243;,&#8221;bulletinFamily&#8221;:&#8221;&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:null,&#8221;sourceData&#8221;:&#8221;Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\\nLinux Linux 0\\nLinux Linux 0\\nLinux Linux 0\\nLinux Linux 0\\nLinux Linux 0\\nLinux Linux 0\\nLinux Linux 0\\nLinux Linux 0&#8243;,&#8221;sourceHref&#8221;:&#8221;&#8221;,&#8221;cvss&#8221;:{&#8220;score&#8221;:7.5,&#8221;severity&#8221;:&#8221;HIGH&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:N\/I:N\/A:H&#8221;,&#8221;version&#8221;:&#8221;3.1&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;&#8221;,&#8221;category_name&#8221;:&#8221;CVE&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;Linux&#8221;,&#8221;version&#8221;:&#8221;1da177e4c3f41524e886b7f1b8a0c1fc7321cac2&#8243;,&#8221;vendor&#8221;:&#8221;Linux&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;&#8221;,&#8221;description&#8221;:&#8221;In the Linux kernel, the following vulnerability has been resolved:\\n\\nfs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling\\n\\nA SOFTIRQ-safe to SOFTIRQ-unsafe lock order deadlock can occur&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[6,8,16,12,15,13,7,11,5],"class_list":["post-66542","post","type-post","status-publish","format-standard","hentry","category-category_cve","tag-cve","tag-cvss","tag-cvss-75","tag-exploit","tag-high","tag-news","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=66542\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;&#8221;,&#8221;description&#8221;:&#8221;In the Linux kernel, the following vulnerability has been resolved:nnfs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signalingnnA SOFTIRQ-safe to SOFTIRQ-unsafe lock order deadlock can occur...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=66542\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-28T03:26:17+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"fs\\\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946\",\"datePublished\":\"2026-06-28T03:26:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542\"},\"wordCount\":722,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-7.5\",\"exploit\",\"HIGH\",\"news\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_cve\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=66542#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542\",\"name\":\"fs\\\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-06-28T03:26:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=66542\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66542#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"fs\\\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=66542","og_locale":"en_US","og_type":"article","og_title":"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;&#8221;,&#8221;description&#8221;:&#8221;In the Linux kernel, the following vulnerability has been resolved:nnfs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signalingnnA SOFTIRQ-safe to SOFTIRQ-unsafe lock order deadlock can occur...","og_url":"https:\/\/zero.redgem.net\/?p=66542","og_site_name":"zero redgem","article_published_time":"2026-06-28T03:26:17+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=66542#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=66542"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946","datePublished":"2026-06-28T03:26:17+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=66542"},"wordCount":722,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-7.5","exploit","HIGH","news","Security","tapic","Vulnerability"],"articleSection":["category_cve"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=66542#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=66542","url":"https:\/\/zero.redgem.net\/?p=66542","name":"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-06-28T03:26:17+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=66542#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=66542"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=66542#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"fs\/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling_CVE-2026-52946"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/66542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66542"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/66542\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}