<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Kernel Security on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/kernel-security/</link>
        <description>Recent content in Kernel Security on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 22 May 2026 15:16:59 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/kernel-security/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>CVE-2026-43494 / PinTheft: Local Privilege Escalation Risk from Linux RDS and io_uring</title>
        <link>https://knightli.com/en/2026/05/22/linux-kernel-cve-2026-43494-pintheft/</link>
        <pubDate>Fri, 22 May 2026 15:16:59 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/22/linux-kernel-cve-2026-43494-pintheft/</guid>
        <description>&lt;p&gt;&lt;code&gt;CVE-2026-43494&lt;/code&gt; is a Linux kernel local privilege escalation risk. The related exploitation chain is also known publicly as &lt;code&gt;PinTheft&lt;/code&gt;. The key point is not a remote entry point, but whether a low-privilege local user can line up RDS zerocopy, &lt;code&gt;io_uring&lt;/code&gt; fixed buffers, a readable SUID-root program, and a suitable kernel version.&lt;/p&gt;
&lt;p&gt;One naming detail is worth clarifying first: the &lt;code&gt;Unclecheng-li/poc-lab&lt;/code&gt; repository directory is named &lt;code&gt;CVE-2026-43494 PinTheft&lt;/code&gt;, while the README title also mentions &lt;code&gt;QVD-2026-27616 - PinTheft&lt;/code&gt;. Based on public CVE entries and third-party advisories, &lt;code&gt;CVE-2026-43494&lt;/code&gt; points to a Linux kernel RDS zerocopy issue where &lt;code&gt;op_nents&lt;/code&gt; is not reset correctly, leading to a double-free / reference-counting anomaly. &lt;code&gt;QVD-2026-27616&lt;/code&gt; appears more like a Qianxin risk advisory identifier. In real triage, record both identifiers, but treat distribution security advisories and kernel patch status as the source of truth.&lt;/p&gt;
&lt;h2 id=&#34;what-is-the-core-bug&#34;&gt;What Is the Core Bug?
&lt;/h2&gt;&lt;p&gt;The issue appears in the zerocopy send path of Linux RDS, Reliable Datagram Sockets. Public descriptions point to these key functions:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rds_message_zcopy_from_user()
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rds_message_purge()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;When &lt;code&gt;iov_iter_get_pages2()&lt;/code&gt; fails inside &lt;code&gt;rds_message_zcopy_from_user()&lt;/code&gt;, pages that have already been pinned can be released by the error path, but the related &lt;code&gt;op_nents&lt;/code&gt; state is not cleared correctly. Later, &lt;code&gt;rds_message_purge()&lt;/code&gt; may still release the residual entries again. The result is that the same batch of page references can be decremented too many times, creating an exploitable reference-counting error.&lt;/p&gt;
&lt;p&gt;Viewed alone, the RDS bug is an error-path memory-management issue inside the kernel. PinTheft becomes dangerous because the exploitation chain connects it with the &lt;code&gt;io_uring&lt;/code&gt; fixed-buffer mechanism: &lt;code&gt;io_uring&lt;/code&gt; still keeps an old &lt;code&gt;struct page *&lt;/code&gt;, while the page itself has already been freed and reallocated for another purpose. The public PoC then steers this state toward overwriting the page cache of a SUID-root program, eventually reaching local privilege escalation.&lt;/p&gt;
&lt;h2 id=&#34;why-it-is-called-pintheft&#34;&gt;Why It Is Called PinTheft
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;io_uring REGISTER_BUFFERS&lt;/code&gt; pins user pages. For normal pages, &lt;code&gt;FOLL_PIN&lt;/code&gt; is not just a simple reference increment; it raises the page refcount through a larger bias. The public PoC uses the concept of &lt;code&gt;GUP_PIN_COUNTING_BIAS = 1024&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The name PinTheft means the attack chain repeatedly &amp;ldquo;steals&amp;rdquo; those pin references through the RDS zerocopy failure path. After the references are drained, &lt;code&gt;io_uring&lt;/code&gt; still believes it holds a valid page, but that physical page can now be freed and reused by the page cache.&lt;/p&gt;
&lt;p&gt;This class of vulnerability is easy to misread as &amp;ldquo;directly modifying &lt;code&gt;/usr/bin/su&lt;/code&gt; on disk.&amp;rdquo; A more accurate description is that the exploitation chain tries to overwrite the in-memory page cache. The file itself may not be written back to disk, but when the kernel executes the SUID program, it may fetch instructions from the contaminated page cache and run the attack payload.&lt;/p&gt;
&lt;h2 id=&#34;the-trigger-conditions-are-not-broad&#34;&gt;The Trigger Conditions Are Not Broad
&lt;/h2&gt;&lt;p&gt;This is not a vulnerability where &amp;ldquo;any Linux server can be remotely hit.&amp;rdquo; Public information indicates that the exploitation chain depends on at least these conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The kernel has &lt;code&gt;CONFIG_RDS&lt;/code&gt; and &lt;code&gt;CONFIG_RDS_TCP&lt;/code&gt; enabled.&lt;/li&gt;
&lt;li&gt;The system has &lt;code&gt;CONFIG_IO_URING&lt;/code&gt; enabled, and &lt;code&gt;kernel.io_uring_disabled=0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;rds&lt;/code&gt; / &lt;code&gt;rds_tcp&lt;/code&gt; modules are already loaded, or a low-privilege user can trigger autoloading.&lt;/li&gt;
&lt;li&gt;A readable SUID-root binary exists locally, such as &lt;code&gt;/usr/bin/su&lt;/code&gt;, &lt;code&gt;/usr/bin/passwd&lt;/code&gt;, or &lt;code&gt;/usr/bin/pkexec&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The public PoC also depends on the newer &lt;code&gt;IORING_REGISTER_CLONE_BUFFERS&lt;/code&gt; API. CloudLinux analysis notes that the public PoC is more aligned with kernel 6.13 and later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If any one of these links is missing, the public exploitation path breaks. For example, many RHEL-family distributions do not compile RDS by default, older Ubuntu kernels may lack the &lt;code&gt;io_uring&lt;/code&gt; clone-buffer API needed by the PoC, and some environments restrict automatic RDS module loading by unprivileged users.&lt;/p&gt;
&lt;h2 id=&#34;one-minute-self-check&#34;&gt;One-Minute Self-Check
&lt;/h2&gt;&lt;p&gt;First, check the kernel configuration:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;zgrep -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;CONFIG_(RDS|RDS_TCP|IO_URING)&amp;#34;&lt;/span&gt; /proc/config.gz 2&amp;gt;/dev/null &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; grep -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;CONFIG_(RDS|RDS_TCP|IO_URING)&amp;#34;&lt;/span&gt; /boot/config-&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;uname -r&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then check whether &lt;code&gt;io_uring&lt;/code&gt; is disabled:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /proc/sys/kernel/io_uring_disabled 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Interpret the common values like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;0&lt;/code&gt;: allowed, giving the largest exposure.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;1&lt;/code&gt;: restricted for unprivileged users; exact behavior depends on kernel version and distribution policy.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;2&lt;/code&gt;: &lt;code&gt;io_uring&lt;/code&gt; disabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check whether the RDS modules exist and can be loaded:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lsmod &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;^rds|^rds_tcp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;modprobe -n -v rds_tcp 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; head -3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If &lt;code&gt;CONFIG_RDS&lt;/code&gt; is &lt;code&gt;not set&lt;/code&gt;, or the system has no &lt;code&gt;rds_tcp&lt;/code&gt; module at all, this bug usually cannot be reached. Conversely, if RDS is available, &lt;code&gt;io_uring&lt;/code&gt; is not disabled, and the system uses a relatively new general-purpose kernel, continue checking distribution fix status with higher priority.&lt;/p&gt;
&lt;h2 id=&#34;which-machines-deserve-priority&#34;&gt;Which Machines Deserve Priority
&lt;/h2&gt;&lt;p&gt;Prioritize these environments:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multi-user Linux hosts, teaching machines, jump hosts, and shared development machines.&lt;/li&gt;
&lt;li&gt;Container hosts, especially environments that allow untrusted local users or have a loose container escape surface.&lt;/li&gt;
&lt;li&gt;Desktops or servers running newer mainline / rolling kernels, such as Arch-like rolling distributions.&lt;/li&gt;
&lt;li&gt;HPC, Oracle RAC, or other scenarios that may genuinely use RDS.&lt;/li&gt;
&lt;li&gt;CI workers, build machines, and lab environments that allow unprivileged users to run large amounts of local code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For an ordinary web server where only controlled service accounts run applications and RDS is not enabled, the practical risk is much lower. But &amp;ldquo;much lower&amp;rdquo; does not mean &amp;ldquo;ignore it&amp;rdquo;: the typical impact of a kernel local privilege escalation is that an attacker first gains low-privilege access through Web, SSH, CI, containers, or an application bug, then uses the local bug to expand control.&lt;/p&gt;
&lt;h2 id=&#34;temporary-mitigation-ideas&#34;&gt;Temporary Mitigation Ideas
&lt;/h2&gt;&lt;p&gt;The proper fix should still come from the distribution kernel update. Patch status, backported versions, and affected ranges must be checked against advisories from Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, SUSE, Arch, cloud vendors, or container base-image providers. Do not judge only by the upstream version number.&lt;/p&gt;
&lt;p&gt;While waiting for patches, or when an immediate kernel reboot is not possible, choose temporary measures according to the environment:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# If the business does not depend on RDS, block related module loading&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sh -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;printf &amp;#39;install rds /bin/false\ninstall rds_tcp /bin/false\ninstall rds_rdma /bin/false\n&amp;#39; &amp;gt; /etc/modprobe.d/pintheft.conf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rmmod rds_tcp 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rmmod rds_rdma 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rmmod rds 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If the business does not depend on &lt;code&gt;io_uring&lt;/code&gt;, consider disabling or restricting it:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w kernel.io_uring_disabled&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Persistent configuration needs to be written into the appropriate &lt;code&gt;/etc/sysctl.d/*.conf&lt;/code&gt; file. Be careful with this step: modern databases, proxies, runtimes, or high-performance I/O programs may use &lt;code&gt;io_uring&lt;/code&gt;. Confirm business dependencies before changing production systems.&lt;/p&gt;
&lt;h2 id=&#34;how-to-verify-after-fixing&#34;&gt;How to Verify After Fixing
&lt;/h2&gt;&lt;p&gt;After upgrading the kernel, do not rely only on package-manager success output. Confirm three things:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /proc/sys/kernel/io_uring_disabled 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;modprobe -n -v rds_tcp 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; head -3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If a distribution advisory explicitly says &lt;code&gt;CVE-2026-43494&lt;/code&gt; is fixed, the kernel may still be protected even when &lt;code&gt;uname -r&lt;/code&gt; does not look like the newest upstream release, because the stable distribution kernel may have received a backported patch. Conversely, if the kernel comes from a self-built tree, third-party repository, cloud marketplace image, or container host template, continue checking the patch commit and build time.&lt;/p&gt;
&lt;h2 id=&#34;references&#34;&gt;References
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Unclecheng-li/poc-lab/tree/main/CVE-2026-43494%20PinTheft&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Unclecheng-li/poc-lab: CVE-2026-43494 PinTheft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://dbugs.ptsecurity.com/vulnerability/PT-2026-42451&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;dbugs: CVE-2026-43494&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.cloudlinux.com/pintheft-cloudlinux-platforms-not-affected&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CloudLinux: PinTheft (CVE-2026-43494) kernel LPE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://git.kernel.org/stable/c/e174929793195e0cd6a4adb0cad731b39f9019b4&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux stable commit: net/rds reset op_nents when zerocopy page pin fails&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Impact Summary of Four Recent Linux Local Security Issues: Copy Fail, Dirty Frag, Fragnesia, and ssh-keysign-pwn</title>
        <link>https://knightli.com/en/2026/05/20/linux-lpe-four-vulnerabilities-impact-summary/</link>
        <pubDate>Wed, 20 May 2026 23:00:37 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/20/linux-lpe-four-vulnerabilities-impact-summary/</guid>
        <description>&lt;p&gt;Several high-profile local security issues have appeared in the Linux ecosystem recently. Individually, they involve different areas: crypto interfaces, network and IPsec paths, page cache handling, and ptrace access checks. Together, they point to the same operational lesson: once an attacker has a low-privilege local execution point, the risk to Linux hosts, container nodes, CI machines, and multi-user servers increases sharply.&lt;/p&gt;
&lt;p&gt;This article does not repeat all technical details of each vulnerability. Instead, it summarizes their practical impact and links to four separate articles on this site for deeper reading.&lt;/p&gt;
&lt;h2 id=&#34;what-the-four-events-affect&#34;&gt;What the Four Events Affect
&lt;/h2&gt;&lt;p&gt;The four risks worth tracking are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy Fail (CVE-2026-31431): a low-privilege local user may affect the page cache through kernel crypto-related paths and expand privileges.&lt;/li&gt;
&lt;li&gt;Dirty Frag (related to CVE-2026-43284 / CVE-2026-43500): risk centers on xfrm/ESP, RxRPC, and related network and kernel data paths, making it dangerous in post-compromise scenarios.&lt;/li&gt;
&lt;li&gt;Fragnesia (CVE-2026-46300): close to Dirty Frag, involving XFRM ESP-in-TCP, shared fragments, and page-cache write risk.&lt;/li&gt;
&lt;li&gt;ssh-keysign-pwn (CVE-2026-46333): not a direct root-shell bug, but a local information disclosure risk that may expose SSH host private keys, &lt;code&gt;/etc/shadow&lt;/code&gt;, and other sensitive files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The entry points differ, and so do the mitigations. Fixing Copy Fail does not automatically cover Dirty Frag or Fragnesia. Disabling some network modules does not automatically remove the information disclosure risk around ssh-keysign-pwn.&lt;/p&gt;
&lt;h2 id=&#34;copy-fail-high-priority-for-containers-and-ci-nodes&#34;&gt;Copy Fail: High Priority for Containers and CI Nodes
&lt;/h2&gt;&lt;p&gt;The key impact of Copy Fail is not an application crash. It is that low-privilege execution may be turned into root privileges. It is especially sensitive in these environments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CI/CD nodes that allow users to upload or run code.&lt;/li&gt;
&lt;li&gt;Container hosts running untrusted workloads.&lt;/li&gt;
&lt;li&gt;Development machines, jump hosts, and shared servers.&lt;/li&gt;
&lt;li&gt;Cloud hosts running older kernels with slower patch cycles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The danger is that Copy Fail has a relatively low exploitation threshold and combines easily with container scenarios. Many teams treat containers as a strong isolation boundary, but ordinary containers still share the host kernel by default. If an attacker gets a shell inside a container, a kernel LPE can turn a container issue into a host issue.&lt;/p&gt;
&lt;p&gt;Detailed analysis: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/&#34; &gt;Copy Fail CVE-2026-31431: Container Escape Risk in a Linux Kernel File-Copy Path&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;dirty-frag-a-post-compromise-amplifier&#34;&gt;Dirty Frag: A Post-Compromise Amplifier
&lt;/h2&gt;&lt;p&gt;Dirty Frag is more like a privilege amplifier after an attacker has entered a system. It is not a typical remote unauthenticated vulnerability. The usual prerequisite is that the attacker already has local execution through a weak password, WebShell, low-privilege service account, container task, or another foothold.&lt;/p&gt;
&lt;p&gt;Its practical impact appears in several places:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A compromised low-privilege account may become root.&lt;/li&gt;
&lt;li&gt;A low-privilege execution point inside a container may threaten the host.&lt;/li&gt;
&lt;li&gt;Systems using IPsec, ESP, RxRPC, or related kernel networking capabilities need careful patch and mitigation review.&lt;/li&gt;
&lt;li&gt;Security teams should look beyond perimeter defense and include post-compromise privilege escalation chains.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dirty Frag reminds operations teams that local privilege escalation may not be the first entry point, but it can decide how far an intrusion goes. Once a low-privilege foothold exists, attackers will look for kernel bugs to push privileges to the highest level.&lt;/p&gt;
&lt;p&gt;Detailed analysis: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/&#34; &gt;Dirty Frag CVE-2026-43284: Linux Local Privilege Escalation Risk and Mitigation Guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;fragnesia-similar-attack-surfaces-are-not-cleaned-up-all-at-once&#34;&gt;Fragnesia: Similar Attack Surfaces Are Not Cleaned Up All at Once
&lt;/h2&gt;&lt;p&gt;Fragnesia matters because it shows that the attack surface near Dirty Frag is not an isolated one-off issue. Even if one bug is fixed, neighboring paths, similar data structures, and related module combinations may still contain new exploitable points.&lt;/p&gt;
&lt;p&gt;Its operational impact is mainly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do not handle only the vulnerability name once. Keep checking by attack surface.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt;, XFRM, and ESP-in-TCP should be evaluated against actual business dependencies.&lt;/li&gt;
&lt;li&gt;If a system does not depend on the related network capabilities, temporary disabling may be considered, but it must be tested first to avoid breaking VPN, IPsec, tunnels, or internal networking.&lt;/li&gt;
&lt;li&gt;Page-cache pollution risks can create detection blind spots where files appear unchanged, but the execution path is affected.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For enterprises, the biggest lesson is that patch management should not look only at a single CVE. A safer approach is to build an inventory around subsystems and attack surfaces, then identify which machines expose the relevant capabilities and which services truly need those modules.&lt;/p&gt;
&lt;p&gt;Detailed analysis: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/&#34; &gt;Fragnesia (CVE-2026-46300): Linux Kernel Local Privilege Escalation Impact and Mitigation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;ssh-keysign-pwn-not-direct-root-still-dangerous&#34;&gt;ssh-keysign-pwn: Not Direct Root, Still Dangerous
&lt;/h2&gt;&lt;p&gt;ssh-keysign-pwn differs from the previous three. It is more of a local sensitive information disclosure issue than a direct root-shell vulnerability. But in real attacks, sensitive information disclosure can quickly become a larger incident.&lt;/p&gt;
&lt;p&gt;The main impacts include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leaked SSH host private keys may damage host identity trust.&lt;/li&gt;
&lt;li&gt;Access to files such as &lt;code&gt;/etc/shadow&lt;/code&gt; can lead to offline cracking and account takeover.&lt;/li&gt;
&lt;li&gt;Multi-user servers, jump hosts, build machines, and shared development machines carry higher risk.&lt;/li&gt;
&lt;li&gt;Even without immediate privilege escalation, attackers may obtain credential material useful for lateral movement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This type of issue is easy to underestimate because it does not look as dramatic as a direct root shell. In enterprise environments, however, key and password-hash exposure often means a longer cleanup cycle: rotating SSH host keys, reviewing trust relationships, checking account passwords, and auditing login logs.&lt;/p&gt;
&lt;p&gt;Detailed analysis: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/17/ssh-keysign-pwn-cve-2026-46333/&#34; &gt;ssh-keysign-pwn (CVE-2026-46333): Linux Local Information Disclosure, SSH Host Keys, and /etc/shadow Risk&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;shared-impact-containers-are-not-a-strong-boundary-by-default&#34;&gt;Shared Impact: Containers Are Not a Strong Boundary by Default
&lt;/h2&gt;&lt;p&gt;Taken together, these four events make one point clear: ordinary container isolation is not virtual-machine isolation.&lt;/p&gt;
&lt;p&gt;Docker, containerd, and Kubernetes use namespaces, cgroups, capabilities, seccomp, AppArmor, and SELinux to reduce attack surface, but they usually still share the host kernel. If the vulnerability is in the shared kernel, a low-privilege execution point inside a container can become an entry point.&lt;/p&gt;
&lt;p&gt;High-risk environments should check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether untrusted code is allowed to run on shared hosts.&lt;/li&gt;
&lt;li&gt;Whether containers run as root by default.&lt;/li&gt;
&lt;li&gt;Whether unnecessary capabilities are granted.&lt;/li&gt;
&lt;li&gt;Whether seccomp policies are too broad.&lt;/li&gt;
&lt;li&gt;Whether multi-tenant workloads should move to gVisor, Kata Containers, Firecracker microVM, dedicated virtual machines, or dedicated nodes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CI/CD platforms deserve special attention. Build jobs naturally run external code, dependency install scripts, test scripts, and temporary binaries. If these jobs share hosts with long-running services, one local privilege escalation can affect much larger infrastructure.&lt;/p&gt;
&lt;h2 id=&#34;shared-impact-patches-must-reach-the-running-kernel&#34;&gt;Shared Impact: Patches Must Reach the Running Kernel
&lt;/h2&gt;&lt;p&gt;A common Linux kernel patching mistake is assuming that an installed package means the machine is running the fixed kernel.&lt;/p&gt;
&lt;p&gt;At minimum, operations teams should verify three things:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check the currently running kernel.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dpkg -l &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep linux-image
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or on RHEL-family distributions:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rpm -qa &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check installed kernel packages.&lt;/p&gt;
&lt;p&gt;Finally, confirm that the machine has rebooted into the fixed kernel. For core services that cannot reboot immediately, evaluate livepatch, hot patching, or short-term isolation, but do not treat temporary mitigation as the final fix.&lt;/p&gt;
&lt;h2 id=&#34;shared-impact-attack-surface-reduction-must-be-specific&#34;&gt;Shared Impact: Attack Surface Reduction Must Be Specific
&lt;/h2&gt;&lt;p&gt;These vulnerabilities remind us that Linux hardening cannot stop at &amp;ldquo;update the system&amp;rdquo; and &amp;ldquo;enable a firewall.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;More specific checks include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Whether AF_ALG / &lt;code&gt;algif_aead&lt;/code&gt; is used by business workloads.&lt;/li&gt;
&lt;li&gt;Whether XFRM, ESP, ESP-in-TCP, and IPsec are required by VPNs, tunnels, or security gateways.&lt;/li&gt;
&lt;li&gt;Whether RxRPC is needed.&lt;/li&gt;
&lt;li&gt;Whether unprivileged user namespaces must be enabled.&lt;/li&gt;
&lt;li&gt;Whether containers can create overly broad socket types.&lt;/li&gt;
&lt;li&gt;Whether ptrace access policies are too loose.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the business does not need certain capabilities, evaluate disabling modules, adjusting sysctl settings, tightening seccomp, and reducing capabilities. Do not blindly copy commands into production. Inventory dependencies first, then roll out changes gradually.&lt;/p&gt;
&lt;h2 id=&#34;suggested-response-order&#34;&gt;Suggested Response Order
&lt;/h2&gt;&lt;p&gt;First, prioritize machines where local code execution is exposed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Container hosts.&lt;/li&gt;
&lt;li&gt;CI/CD runners.&lt;/li&gt;
&lt;li&gt;Jump hosts.&lt;/li&gt;
&lt;li&gt;Multi-user servers.&lt;/li&gt;
&lt;li&gt;Hosts running external-facing services.&lt;/li&gt;
&lt;li&gt;Systems running untrusted plugins, scripts, or extensions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Second, confirm distribution advisories and the actual running kernel. Do not rely only on upstream version numbers. Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, SUSE, openEuler, and other distributions may backport security fixes.&lt;/p&gt;
&lt;p&gt;Third, tighten container runtime policies. Prefer non-root users, minimal capabilities, &lt;code&gt;no-new-privileges&lt;/code&gt;, read-only filesystems, and explicit seccomp plus AppArmor or SELinux policies.&lt;/p&gt;
&lt;p&gt;Fourth, review key and credential exposure. Especially for environments affected by ssh-keysign-pwn, evaluate whether SSH host keys, &lt;code&gt;/etc/shadow&lt;/code&gt;, jump-host credentials, and CI secrets need rotation.&lt;/p&gt;
&lt;p&gt;Fifth, improve monitoring. Watch for abnormal root shells, suspicious local LPE PoCs, critical file changes, abnormal ptrace behavior, container processes accessing host paths, and unusual network connections from CI nodes.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;The point of these four events is not &amp;ldquo;Linux is insecure.&amp;rdquo; The point is that default trust is no longer enough.&lt;/p&gt;
&lt;p&gt;Linux remains transparent, fixable, configurable, and hardenable. But in environments where containers, CI, multi-tenancy, and AI-driven code execution are increasingly common, a low-privilege execution point can no longer be treated as a minor issue. If the kernel contains exploitable local privilege escalation or sensitive information disclosure bugs, a partial intrusion can become host control, credential exposure, or lateral movement.&lt;/p&gt;
&lt;p&gt;A more realistic approach is to treat these four events as a reminder: patch quickly, confirm rebooted kernels, enable modules only when needed, tighten containers, make key rotation possible, and reassess isolation levels for multi-tenant workloads.&lt;/p&gt;
&lt;p&gt;Further Reading on This Site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/&#34; &gt;Copy Fail CVE-2026-31431: Container Escape Risk in a Linux Kernel File-Copy Path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/&#34; &gt;Dirty Frag CVE-2026-43284: Linux Local Privilege Escalation Risk and Mitigation Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/&#34; &gt;Fragnesia (CVE-2026-46300): Linux Kernel Local Privilege Escalation Impact and Mitigation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/en/2026/05/17/ssh-keysign-pwn-cve-2026-46333/&#34; &gt;ssh-keysign-pwn (CVE-2026-46333): Linux Local Information Disclosure, SSH Host Keys, and /etc/shadow Risk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ssh-keysign-pwn (CVE-2026-46333): Linux Local Information Disclosure, SSH Host Keys, and /etc/shadow Risk</title>
        <link>https://knightli.com/en/2026/05/17/ssh-keysign-pwn-cve-2026-46333/</link>
        <pubDate>Sun, 17 May 2026 09:29:03 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/17/ssh-keysign-pwn-cve-2026-46333/</guid>
        <description>&lt;p&gt;&lt;code&gt;ssh-keysign-pwn&lt;/code&gt; refers to a set of exploitation paths around a logic flaw in Linux kernel &lt;code&gt;__ptrace_may_access()&lt;/code&gt;, assigned &lt;code&gt;CVE-2026-46333&lt;/code&gt;. It is not a remote unauthenticated flaw and it does not directly hand out a root shell, but the risk is still high: a low-privileged local user may read root-owned sensitive files that should be inaccessible, such as SSH host private keys or &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For operations teams, the priority is not reproducing a PoC. The priority is to identify affected machines, upgrade the kernel, reboot into the fixed kernel, and rotate SSH host keys or reset passwords when necessary.&lt;/p&gt;
&lt;h2 id=&#34;bottom-line&#34;&gt;Bottom line
&lt;/h2&gt;&lt;p&gt;This vulnerability deserves high handling priority for four reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It can be triggered by a low-privileged local user and does not require root.&lt;/li&gt;
&lt;li&gt;Public PoC code is available, lowering the exploitation barrier.&lt;/li&gt;
&lt;li&gt;The potential targets are not ordinary files, but SSH host private keys and &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The fix requires a kernel patch and reboot; installing packages without rebooting is not enough.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your servers have multiple users, local shell access, shared hosting, CI runners, container hosts, student lab machines, bastion hosts, or any local users you do not fully trust, handle this first.&lt;/p&gt;
&lt;h2 id=&#34;what-the-vulnerability-is&#34;&gt;What the vulnerability is
&lt;/h2&gt;&lt;p&gt;Qualys disclosed details on oss-security on May 15, 2026. They had previously reported a Linux kernel &lt;code&gt;__ptrace_may_access()&lt;/code&gt; logic issue to &lt;code&gt;security@kernel.org&lt;/code&gt;, and the upstream fix had already been merged by Linus. Public exploit code then appeared, so Qualys posted the details to oss-security.&lt;/p&gt;
&lt;p&gt;The Linux kernel CVE team later assigned &lt;code&gt;CVE-2026-46333&lt;/code&gt;. The NVD page lists kernel.org as the source, and the description maps to the kernel commit &lt;code&gt;ptrace: slightly saner &#39;get_dumpable()&#39; logic&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In simple terms, the bug sits in a process exit path. When some privileged processes are exiting, ptrace-related access-check logic in the kernel may bypass a dumpable check that should have applied because the target task no longer has an &lt;code&gt;mm&lt;/code&gt;. An attacker can race a very narrow timing window and obtain file descriptors that the exiting privileged process still has open.&lt;/p&gt;
&lt;p&gt;That is why the issue is called &lt;code&gt;ssh-keysign-pwn&lt;/code&gt;: one public exploitation path uses &lt;code&gt;ssh-keysign&lt;/code&gt; to read SSH host private keys.&lt;/p&gt;
&lt;h2 id=&#34;why-ssh-host-private-keys-and-etcshadow-may-be-exposed&#34;&gt;Why SSH host private keys and /etc/shadow may be exposed
&lt;/h2&gt;&lt;p&gt;At its core, this is a local information disclosure issue. It abuses a window during privileged process exit where the memory descriptor is gone, but file descriptors have not yet been closed.&lt;/p&gt;
&lt;p&gt;The AlmaLinux advisory explains the risk clearly: if a privileged program opened sensitive files before dropping privileges, and an attacker successfully grabs the corresponding file descriptor during the exit window, those sensitive files may become readable.&lt;/p&gt;
&lt;p&gt;Two commonly discussed targets are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh-keysign&lt;/code&gt;: may involve SSH host private keys such as &lt;code&gt;/etc/ssh/ssh_host_*_key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chage&lt;/code&gt;: may involve &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If SSH host private keys leak, an attacker may impersonate the host and undermine SSH host identity trust. If &lt;code&gt;/etc/shadow&lt;/code&gt; leaks, an attacker can crack password hashes offline and expand the compromise later.&lt;/p&gt;
&lt;p&gt;That is why this should be treated as high priority even though it is not a &amp;ldquo;direct root shell&amp;rdquo; bug.&lt;/p&gt;
&lt;h2 id=&#34;how-to-assess-exposure&#34;&gt;How to assess exposure
&lt;/h2&gt;&lt;p&gt;From the upstream perspective, this is a Linux kernel vulnerability. NVD records show the issue entered the NVD dataset on May 15, 2026, with no CVSS score assigned at that time.&lt;/p&gt;
&lt;p&gt;Distribution status should be checked against each vendor&amp;rsquo;s own advisory:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AlmaLinux 8, 9, and 10 published guidance and updated it on May 16, 2026 to say patched kernels had reached production repositories.&lt;/li&gt;
&lt;li&gt;Debian Security Tracker lists vulnerable and fixed states, plus fixed versions, for bullseye, bookworm, trixie, sid, and other branches.&lt;/li&gt;
&lt;li&gt;For other distributions, check the official security pages or repositories for Ubuntu, Red Hat, SUSE, Arch, Alpine, and so on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do not judge safety only by the upstream kernel version. Distributions backport fixes, so the same upstream-looking version number may mean different patch states across distributions.&lt;/p&gt;
&lt;h2 id=&#34;which-machines-to-prioritize&#34;&gt;Which machines to prioritize
&lt;/h2&gt;&lt;p&gt;Prioritize remediation in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multi-user servers and shared hosts.&lt;/li&gt;
&lt;li&gt;Bastion hosts, teaching machines, development machines, and other systems with normal shell accounts.&lt;/li&gt;
&lt;li&gt;CI runners, build machines, and hosting platform nodes.&lt;/li&gt;
&lt;li&gt;Container and virtualization hosts, especially where not-fully-trusted workloads coexist.&lt;/li&gt;
&lt;li&gt;Public service machines. The vulnerability needs local access, but the risk compounds once a web bug, RCE, weak password, or similar path gives an attacker a low-privileged foothold.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pure single-user desktop systems are lower risk, but they should still be updated. Local low-privileged code execution is common on desktops through browsers, developer tools, scripts, and third-party software.&lt;/p&gt;
&lt;h2 id=&#34;remediation-guidance&#34;&gt;Remediation guidance
&lt;/h2&gt;&lt;p&gt;The preferred fix is to install the fixed kernel supplied by your distribution and reboot.&lt;/p&gt;
&lt;p&gt;Commands differ by distribution, but the principle is the same:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Refresh package metadata.&lt;/li&gt;
&lt;li&gt;Install the kernel package containing the &lt;code&gt;CVE-2026-46333&lt;/code&gt; fix.&lt;/li&gt;
&lt;li&gt;Reboot into the new kernel.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;uname -r&lt;/code&gt; and the distribution security advisory to verify the running kernel is fixed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The AlmaLinux advisory says fixed kernels are available in production repositories and users can run the usual &lt;code&gt;dnf upgrade&lt;/code&gt; and reboot. The Debian tracker also lists fixed versions for multiple branches.&lt;/p&gt;
&lt;p&gt;Important: if you only install a new kernel package but do not reboot, the old vulnerable kernel is still running.&lt;/p&gt;
&lt;h2 id=&#34;temporary-mitigation-tighten-ptrace_scope&#34;&gt;Temporary mitigation: tighten ptrace_scope
&lt;/h2&gt;&lt;p&gt;If you cannot reboot immediately, tighten Yama &lt;code&gt;ptrace_scope&lt;/code&gt; first.&lt;/p&gt;
&lt;p&gt;Qualys confirmed in a follow-up oss-security reply that setting &lt;code&gt;/proc/sys/kernel/yama/ptrace_scope&lt;/code&gt; to &lt;code&gt;2&lt;/code&gt; (admin-only attach) or &lt;code&gt;3&lt;/code&gt; (no attach) blocks the public exploitation paths they know about. They also noted that other theoretical exploitation paths may exist, so this is only a mitigation, not a fix.&lt;/p&gt;
&lt;p&gt;Temporary setting:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w kernel.yama.ptrace_scope&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Persistent setting:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;kernel.yama.ptrace_scope = 3&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/sysctl.d/99-ssh-keysign-pwn.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;ptrace_scope=3&lt;/code&gt; disables ptrace attach and may affect debugging workflows such as &lt;code&gt;gdb&lt;/code&gt; and &lt;code&gt;strace -p&lt;/code&gt;. If production debugging is required, evaluate &lt;code&gt;2&lt;/code&gt;. Either way, schedule the kernel upgrade and reboot as soon as possible.&lt;/p&gt;
&lt;h2 id=&#34;should-ssh-host-keys-be-rotated&#34;&gt;Should SSH host keys be rotated?
&lt;/h2&gt;&lt;p&gt;Use a conservative approach if the machine had any of the following conditions around the disclosure window:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Untrusted local users.&lt;/li&gt;
&lt;li&gt;Shared hosting or container/CI multi-tenant environments.&lt;/li&gt;
&lt;li&gt;Web vulnerabilities, weak passwords, supply-chain scripts, or other paths that could give an attacker a local foothold.&lt;/li&gt;
&lt;li&gt;Suspicious local processes, unusual debugging behavior, or public PoC files in logs.&lt;/li&gt;
&lt;li&gt;Long exposure before patching.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conservative handling includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rotate SSH host keys after patching and rebooting.&lt;/li&gt;
&lt;li&gt;Update known-host fingerprint management systems.&lt;/li&gt;
&lt;li&gt;Notify automation that depends on the host fingerprint.&lt;/li&gt;
&lt;li&gt;Review SSH connection alerts so legitimate fingerprint changes are not mistaken for man-in-the-middle attacks, and real risks are not ignored.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If &lt;code&gt;/etc/shadow&lt;/code&gt; may have leaked, also evaluate password resets, weak-password bans, and whether old hashes could be cracked offline.&lt;/p&gt;
&lt;h2 id=&#34;what-to-monitor&#34;&gt;What to monitor
&lt;/h2&gt;&lt;p&gt;The exploitation window is short, so traditional logs may not capture everything. Still, watch for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Files such as &lt;code&gt;ssh-keysign-pwn&lt;/code&gt;, &lt;code&gt;chage_pwn&lt;/code&gt;, or similar PoC artifacts in normal user directories.&lt;/li&gt;
&lt;li&gt;Suspicious compilation activity, such as unfamiliar C programs compiled in a short window.&lt;/li&gt;
&lt;li&gt;Signs of abnormal access to &lt;code&gt;/etc/ssh/ssh_host_*_key&lt;/code&gt; or &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Unusual &lt;code&gt;pidfd_getfd&lt;/code&gt;, &lt;code&gt;ptrace&lt;/code&gt;, or debugger-related activity.&lt;/li&gt;
&lt;li&gt;External reports of unexpected SSH host fingerprint changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These signals cannot prove exploitation occurred, and their absence cannot prove it did not. The real priorities remain patching, rebooting, credential rotation, and risk isolation.&lt;/p&gt;
&lt;h2 id=&#34;common-misconceptions&#34;&gt;Common misconceptions
&lt;/h2&gt;&lt;p&gt;First: this is not an OpenSSH remote vulnerability. The name includes &lt;code&gt;ssh-keysign&lt;/code&gt;, but the root cause is Linux kernel ptrace access-check logic, not the remote authentication path in &lt;code&gt;sshd&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Second: no local users does not mean no risk. The bug does require local execution, but real attack chains often obtain a low-privileged local foothold first through web services, CI, scripts, weak passwords, or container escape paths.&lt;/p&gt;
&lt;p&gt;Third: setting &lt;code&gt;ptrace_scope&lt;/code&gt; is not enough. It is a temporary mitigation, not the root fix. Kernel update and reboot are still required.&lt;/p&gt;
&lt;p&gt;Fourth: &amp;ldquo;no root shell&amp;rdquo; does not mean &amp;ldquo;no incident.&amp;rdquo; Exposure of SSH host private keys or &lt;code&gt;/etc/shadow&lt;/code&gt; can be enough to enable lateral movement, host impersonation, and offline password cracking.&lt;/p&gt;
&lt;h2 id=&#34;response-checklist&#34;&gt;Response checklist
&lt;/h2&gt;&lt;p&gt;Suggested order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inventory affected Linux hosts, especially multi-user and shared environments.&lt;/li&gt;
&lt;li&gt;Check distribution security advisories and identify the fixed kernel version.&lt;/li&gt;
&lt;li&gt;Install the fixed kernel and reboot.&lt;/li&gt;
&lt;li&gt;For machines that cannot reboot immediately, set &lt;code&gt;kernel.yama.ptrace_scope=2&lt;/code&gt; or &lt;code&gt;3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;After remediation, verify the running kernel version.&lt;/li&gt;
&lt;li&gt;Rotate SSH host keys on high-risk machines.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;/etc/shadow&lt;/code&gt; exposure is suspected, evaluate password resets and account audits.&lt;/li&gt;
&lt;li&gt;Check for public PoCs, unusual compilation, and suspicious local debugging behavior.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ssh-keysign-pwn&lt;/code&gt; (&lt;code&gt;CVE-2026-46333&lt;/code&gt;) is a local information disclosure vulnerability rooted in Linux kernel &lt;code&gt;__ptrace_may_access()&lt;/code&gt; logic. It does not allow a remote attacker to break in directly and it does not directly grant a root shell, but it may let a low-privileged local user read high-value sensitive files, making it especially important in multi-user, shared hosting, CI, and container-host environments.&lt;/p&gt;
&lt;p&gt;The reliable fix is to upgrade to a distribution-provided fixed kernel and reboot. &lt;code&gt;ptrace_scope=2/3&lt;/code&gt; can be used as a temporary mitigation, but it does not replace patching. Critical hosts exposed during the risk window should also be evaluated for SSH host key rotation and password risk.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys disclosure of the __ptrace_may_access() logic issue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/9&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys confirms the CVE-2026-46333 identifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys confirms ptrace_scope temporary mitigation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-46333&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://security-tracker.debian.org/tracker/CVE-2026-46333&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Debian Security Tracker: CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/he/blog/2026-05-15-ssh-keysign-pwn-cve-2026-46333/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AlmaLinux: ssh-keysign-pwn (CVE-2026-46333) Patches Released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/torvalds/linux/commit/31e62c2ebbfdc3fe3dbdf5e02c92a9dc67087a3a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux upstream fix: ptrace get_dumpable() logic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Dirty Frag CVE-2026-43284: Linux Local Privilege Escalation Risk and Mitigation Guide</title>
        <link>https://knightli.com/en/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/</link>
        <pubDate>Sat, 09 May 2026 07:25:55 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/</guid>
        <description>&lt;p&gt;Dirty Frag is a set of Linux kernel local privilege escalation vulnerabilities disclosed in May 2026 with signs of active exploitation. Microsoft describes it as a post-compromise risk: after an attacker gains low-privileged code execution, the bug may be used to escalate to root. Ubuntu has also marked CVE-2026-43284 as High.&lt;/p&gt;
&lt;p&gt;The danger is not &amp;ldquo;remote one-click compromise&amp;rdquo;. The danger is that once an attacker gets in, they can expand control quickly. If they gain local execution through weak SSH credentials, a web shell, container escape, a low-privileged service account, or phishing-enabled remote access, Dirty Frag may let them obtain root and then disable security tools, read credentials, tamper with logs, move laterally, or persist.&lt;/p&gt;
&lt;h2 id=&#34;which-cves-are-involved&#34;&gt;Which CVEs are involved
&lt;/h2&gt;&lt;p&gt;Public information currently associates Dirty Frag mainly with two IDs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43284&lt;/code&gt;: related to the Linux kernel xfrm/ESP path. Microsoft&amp;rsquo;s &lt;code&gt;esp4&lt;/code&gt; and &lt;code&gt;esp6&lt;/code&gt; references belong to this risk area.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43500&lt;/code&gt;: Microsoft says this is related to &lt;code&gt;rxrpc&lt;/code&gt;, but as of May 8, 2026, the CVE had not yet been published in NVD and patch status was still evolving.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So do not check only one CVE. A safer approach is to review whether &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt;, and related xfrm/IPsec functions are enabled, needed, and patched by your distribution.&lt;/p&gt;
&lt;h2 id=&#34;technical-overview&#34;&gt;Technical overview
&lt;/h2&gt;&lt;p&gt;According to Microsoft and Ubuntu, CVE-2026-43284 involves Linux kernel networking and memory-fragment handling, especially how shared page fragments are handled in the ESP/IPsec path.&lt;/p&gt;
&lt;p&gt;In simplified terms, data pages can be attached to network buffers through mechanisms such as splice. If later kernel paths treat those fragments as privately owned and safe to modify in place, in-place decryption or modification can happen where it should not. An attacker may manipulate page cache behavior and eventually achieve local privilege escalation.&lt;/p&gt;
&lt;p&gt;This has similarities to CopyFail (&lt;code&gt;CVE-2026-31431&lt;/code&gt;): both involve Linux page cache behavior, kernel data paths, and local privilege escalation. Dirty Frag is dangerous because it adds more attack paths and may be more reliable than traditional LPE exploits that depend on tight race windows.&lt;/p&gt;
&lt;h2 id=&#34;environments-to-prioritize&#34;&gt;Environments to prioritize
&lt;/h2&gt;&lt;p&gt;Dirty Frag is a local privilege escalation vulnerability, so the attacker must already be able to execute code locally. Prioritize:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux servers with exposed SSH.&lt;/li&gt;
&lt;li&gt;Web servers where a web shell could be written.&lt;/li&gt;
&lt;li&gt;Multi-user login hosts, bastions, developer machines, and CI/CD runners.&lt;/li&gt;
&lt;li&gt;Container hosts, Kubernetes nodes, and OpenShift nodes.&lt;/li&gt;
&lt;li&gt;Systems using IPsec, VPN, xfrm, or RxRPC-related functionality.&lt;/li&gt;
&lt;li&gt;Servers running Ubuntu, RHEL, CentOS Stream, AlmaLinux, Fedora, openSUSE, and other mainstream distributions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If a server has no local multi-user access, no containers, and no exposed application path, risk is lower. But any system where an attacker might obtain a low-privileged shell should treat this as a high-priority kernel issue.&lt;/p&gt;
&lt;h2 id=&#34;patch-first&#34;&gt;Patch first
&lt;/h2&gt;&lt;p&gt;The safest fix is to install the kernel security update from your distribution and reboot into the new kernel.&lt;/p&gt;
&lt;p&gt;Ubuntu&amp;rsquo;s CVE page shows &lt;code&gt;CVE-2026-43284&lt;/code&gt; was published on May 8, 2026 and is rated High. Microsoft also says the Linux Kernel Organization has released fixes for &lt;code&gt;CVE-2026-43284&lt;/code&gt; and urges customers to apply patches promptly.&lt;/p&gt;
&lt;p&gt;Start by checking the system:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /etc/os-release
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then update the kernel using your distribution&amp;rsquo;s package manager:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt full-upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;After updating, confirm that the system has rebooted into the new kernel:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -r
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Installing kernel packages without rebooting leaves the old kernel running, so the vulnerability may still be present.&lt;/p&gt;
&lt;h2 id=&#34;interim-mitigation-disable-related-modules&#34;&gt;Interim mitigation: disable related modules
&lt;/h2&gt;&lt;p&gt;If patches are not yet available, or production cannot reboot immediately, evaluate whether you can temporarily disable the related modules. Ubuntu&amp;rsquo;s mitigation blocks &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, and &lt;code&gt;rxrpc&lt;/code&gt; from loading and unloads them if already loaded.&lt;/p&gt;
&lt;p&gt;Create modprobe blocking rules:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;install esp4 /bin/false&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/modprobe.d/dirty-frag.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;install esp6 /bin/false&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee -a /etc/modprobe.d/dirty-frag.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;install rxrpc /bin/false&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee -a /etc/modprobe.d/dirty-frag.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Update initramfs so the modules are not loaded during early boot:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo update-initramfs -u -k all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Unload currently loaded modules:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rmmod esp4 esp6 rxrpc 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Check whether the modules are still loaded:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -qE &lt;span class=&#34;s1&#34;&gt;&amp;#39;^(esp4|esp6|rxrpc) &amp;#39;&lt;/span&gt; /proc/modules &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Affected modules are loaded&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Affected modules are NOT loaded&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If a module is in use, unloading may fail. In that case, the block rule may only take effect after reboot.&lt;/p&gt;
&lt;h2 id=&#34;evaluate-business-impact-before-disabling&#34;&gt;Evaluate business impact before disabling
&lt;/h2&gt;&lt;p&gt;Do not paste the mitigation blindly. &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, and xfrm/IPsec functionality may be used by VPNs, tunnels, encrypted networking, Kubernetes/container networking, or enterprise network configurations. &lt;code&gt;rxrpc&lt;/code&gt; may also affect workloads that depend on that protocol.&lt;/p&gt;
&lt;p&gt;Before using the mitigation in production, check at least:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lsmod &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -E &lt;span class=&#34;s1&#34;&gt;&amp;#39;^(esp4|esp6|rxrpc|xfrm)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ip xfrm state
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ip xfrm policy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you depend on IPsec VPN or related kernel networking, disabling modules may break connectivity. In that case, schedule kernel patching and a maintenance reboot rather than relying on module blocking for long.&lt;/p&gt;
&lt;h2 id=&#34;do-not-skip-post-compromise-checks&#34;&gt;Do not skip post-compromise checks
&lt;/h2&gt;&lt;p&gt;Microsoft specifically notes that mitigation does not necessarily undo changes already made by successful exploitation. If an attacker already gained root, they may have left persistence, modified files, altered logs, or accessed session data.&lt;/p&gt;
&lt;p&gt;At minimum, check:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -k --since &lt;span class=&#34;s2&#34;&gt;&amp;#34;24 hours ago&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -Ei &lt;span class=&#34;s2&#34;&gt;&amp;#34;dirty|frag|exploit|segfault|xfrm|rxrpc|esp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;last -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lastlog
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo find /tmp /var/tmp /dev/shm -type f -mtime -3 -ls
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo find / -perm -4000 -type f -mtime -7 -ls 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Also review:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abnormal &lt;code&gt;su&lt;/code&gt;, &lt;code&gt;sudo&lt;/code&gt;, or SUID/SGID process launches.&lt;/li&gt;
&lt;li&gt;Newly created ELF executables.&lt;/li&gt;
&lt;li&gt;Suspicious PHP, JSP, or ASP files in web directories.&lt;/li&gt;
&lt;li&gt;Changes to SSH authorized_keys.&lt;/li&gt;
&lt;li&gt;New persistence in systemd services, cron, or rc.local.&lt;/li&gt;
&lt;li&gt;Suspicious privileged containers or host mounts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If exploitation is suspected, isolate the host, preserve evidence, rotate credentials, and then clean up. Do not assume that unloading modules or clearing caches makes the system safe.&lt;/p&gt;
&lt;h2 id=&#34;about-drop_caches&#34;&gt;About drop_caches
&lt;/h2&gt;&lt;p&gt;Microsoft mentions that in some post-exploitation integrity verification scenarios, cache clearing may be evaluated:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /proc/sys/vm/drop_caches
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This is not a vulnerability fix and not an incident cleanup command. Dropping caches can increase disk I/O and affect production performance. Use it only as an auxiliary step after understanding the impact. The real fix remains patching, rebooting, verifying integrity, and checking persistence.&lt;/p&gt;
&lt;h2 id=&#34;recommended-response-order&#34;&gt;Recommended response order
&lt;/h2&gt;&lt;p&gt;For production environments, a reasonable response sequence is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inventory Linux assets and kernel versions.&lt;/li&gt;
&lt;li&gt;Prioritize systems with exposed SSH, web workloads, container hosts, and multi-user access.&lt;/li&gt;
&lt;li&gt;Patch and reboot systems that can be restarted quickly.&lt;/li&gt;
&lt;li&gt;For systems that cannot yet patch or reboot, evaluate disabling &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, and &lt;code&gt;rxrpc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Increase monitoring for &lt;code&gt;su&lt;/code&gt;, SUID/SGID activity, suspicious ELF files, web shells, and container escape indicators.&lt;/li&gt;
&lt;li&gt;Run post-compromise checks and rotate credentials on hosts that may already have been exploited.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Dirty Frag is not a &amp;ldquo;remote one-click&amp;rdquo; vulnerability, but it significantly increases post-compromise risk. If an attacker can run code locally with low privileges, &lt;code&gt;CVE-2026-43284&lt;/code&gt; and the related &lt;code&gt;rxrpc&lt;/code&gt; attack surface may allow escalation to root.&lt;/p&gt;
&lt;p&gt;For administrators, the priority is not studying PoCs. The priority is to confirm kernel exposure, install distribution security updates and reboot, evaluate module-blocking mitigations before the patch window, and inspect exposed or suspicious systems for integrity and persistence issues.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.microsoft.com/en-us/security/blog/2026/05/08/active-attack-dirty-frag-linux-vulnerability-expands-post-compromise-risk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Microsoft Security Blog: Active attack: Dirty Frag Linux vulnerability expands post-compromise risk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ubuntu.com/security/CVE-2026-43284&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ubuntu: CVE-2026-43284&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ubuntu.com/blog/dirty-frag-linux-vulnerability-fixes-available&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ubuntu: Dirty Frag Linux kernel local privilege escalation vulnerability mitigations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
