<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>CVE on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/cve/</link>
        <description>Recent content in CVE on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Fri, 22 May 2026 23:13:24 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/cve/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>poc-lab Patch Verification: Confirm Whether Recent High-Severity Vulnerabilities Are Fixed, Including Chrome CSSFontFeatureValuesMap UAF, NGINX Rift, Dirty Frag, and Fragnesia</title>
        <link>https://knightli.com/en/2026/05/22/poc-lab-recent-cve-poc-reproduction-scripts/</link>
        <pubDate>Fri, 22 May 2026 23:13:24 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/22/poc-lab-recent-cve-poc-reproduction-scripts/</guid>
        <description>&lt;p&gt;&lt;code&gt;poc-lab&lt;/code&gt; is a repository of PoCs and reproduction scripts for recently disclosed high-severity vulnerabilities. It focuses on fresh and impactful CVE reproduction material across Linux kernel, Windows, macOS, containers, service components, and browser-related vulnerabilities.&lt;/p&gt;
&lt;p&gt;From its positioning, the repository is closer to a security research knowledge base than a one-click toolkit for general users. Each vulnerability directory usually includes PoC scripts, build files, and documentation, helping researchers understand impact, reproduction conditions, and references.&lt;/p&gt;
&lt;h2 id=&#34;main-project-contents&#34;&gt;Main project contents
&lt;/h2&gt;&lt;p&gt;The repository is currently organized by vulnerability identifier or public vulnerability name. The full listed vulnerability names include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-2441&lt;/code&gt;: Chrome &lt;code&gt;CSSFontFeatureValuesMap&lt;/code&gt; use-after-free, also listed as Chrome CSSFontFeatureValuesMap UAF.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-27623&lt;/code&gt;: Pre-Authentication Denial of Service from malformed RESP request.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-31429&lt;/code&gt;: Slab Cross-Cache, a Linux kernel slab cross-cache exploitation direction.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-31431&lt;/code&gt;: Copy Fail, a Linux kernel related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-31635&lt;/code&gt;: DirtyDecrypt, a system security boundary related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-42945&lt;/code&gt;: NGINX Rift, a high-severity NGINX related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43284&lt;/code&gt;: Dirty Frag, a Linux kernel related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43494&lt;/code&gt;: PinTheft, a permission or credential security boundary related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43500&lt;/code&gt;: Dirty Frag, a Linux kernel related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-46300&lt;/code&gt;: Fragnesia, a Linux kernel related vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-46333&lt;/code&gt;: SSH Keysign pwn, an SSH keysign security boundary related vulnerability.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These names show that the project is not limited to one platform. It spans browsers, the Linux kernel, server components, and operating system security boundaries. For people working on vulnerability analysis, patch validation, detection rule writing, and security training labs, this kind of material can be useful reference material.&lt;/p&gt;
&lt;h2 id=&#34;directory-structure&#34;&gt;Directory structure
&lt;/h2&gt;&lt;p&gt;The project README says each vulnerability directory is intended to follow a consistent structure. Common files include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;exploit.py&lt;/code&gt; or &lt;code&gt;exploit.sh&lt;/code&gt;: PoC script&lt;/li&gt;
&lt;li&gt;&lt;code&gt;README.md&lt;/code&gt;: vulnerability information, affected versions, reproduction steps, and references&lt;/li&gt;
&lt;li&gt;&lt;code&gt;build&lt;/code&gt; or related build files: used to compile or prepare the reproduction environment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The repository structure roughly looks like this:&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;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&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;poc-lab/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── CVE-2026-XXXXX/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── exploit
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── README.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── VULN-NAME/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── exploit.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── README.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&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 vulnerability already has a CVE identifier, the directory usually uses that CVE name. If there is no assigned CVE yet, it may use the public vulnerability name.&lt;/p&gt;
&lt;h2 id=&#34;suitable-use-cases&#34;&gt;Suitable use cases
&lt;/h2&gt;&lt;p&gt;This type of repository is more suitable for the following purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Security researchers reproducing vulnerability trigger conditions.&lt;/li&gt;
&lt;li&gt;Enterprise security teams verifying whether patches are effective.&lt;/li&gt;
&lt;li&gt;Detection engineers writing IDS, EDR, WAF, or log detection rules.&lt;/li&gt;
&lt;li&gt;Security courses or internal training that build isolated lab environments.&lt;/li&gt;
&lt;li&gt;Researchers comparing exploitation prerequisites and defensive ideas across vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is not suitable for direct production scanning, and it should not be used against unauthorized systems. The value of a PoC is to help understand risk and verify defenses, not to expand attack surface.&lt;/p&gt;
&lt;h2 id=&#34;what-to-pay-attention-to-when-using-it&#34;&gt;What to pay attention to when using it
&lt;/h2&gt;&lt;p&gt;First, testing must happen in an isolated environment. Vulnerability reproduction may trigger crashes, privilege changes, file corruption, or service outages. It should not be run directly on office machines, production servers, or third-party systems.&lt;/p&gt;
&lt;p&gt;Second, read the &lt;code&gt;README.md&lt;/code&gt; inside each vulnerability directory first. Different PoCs have different dependencies, target versions, trigger conditions, and risks. Reading only the root README is not enough.&lt;/p&gt;
&lt;p&gt;Third, confirm the authorization boundary. Even if a PoC is public, running it against a system you do not own or have explicit permission to test can create legal and compliance risk.&lt;/p&gt;
&lt;p&gt;Fourth, after reproduction, return to the defensive workflow. That includes confirming patched versions, adding detection rules, checking exposed assets, updating asset inventories, and documenting incident response procedures.&lt;/p&gt;
&lt;h2 id=&#34;why-this-kind-of-repository-matters&#34;&gt;Why this kind of repository matters
&lt;/h2&gt;&lt;p&gt;In recent years, the time between high-severity vulnerability disclosure and public reproduction details has become shorter. For defenders, advisories and CVE descriptions are often not enough. Teams also need to understand trigger conditions, exploitation limits, and detection signals in realistic environments.&lt;/p&gt;
&lt;p&gt;The value of repositories such as &lt;code&gt;poc-lab&lt;/code&gt; is that they organize scattered high-severity vulnerability reproduction material by directory, helping researchers complete risk validation more quickly. It does not replace official advisories, vendor patches, or security baselines, but it can serve as supporting material for patch verification and detection engineering.&lt;/p&gt;
&lt;p&gt;There is also risk. Public PoCs lower the reproduction threshold. If an organization does not have timely patch management and asset inventory capabilities, public reproduction material can widen the exposure window. For enterprise security teams, tracking these projects matters, but building a rapid assessment and remediation process matters even more.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;poc-lab&lt;/code&gt; is a collection of PoCs and reproduction scripts for recent high-severity vulnerabilities, covering Linux kernel, browsers, service components, and operating system security issues. It is suitable for security research, patch verification, and detection rule development, but it must be used within authorization, isolation, and responsible disclosure boundaries.&lt;/p&gt;
&lt;p&gt;For general readers, the point is not &amp;ldquo;how to run a PoC.&amp;rdquo; The more important lesson is that after high-severity vulnerabilities become public, verification and exploitation move faster. Security teams need to complete asset identification, patch assessment, detection updates, and risk closure more quickly.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub project: &lt;a class=&#34;link&#34; href=&#34;https://github.com/Unclecheng-li/poc-lab/tree/main&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Unclecheng-li/poc-lab/tree/main&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Chinese README: &lt;a class=&#34;link&#34; href=&#34;https://github.com/Unclecheng-li/poc-lab/blob/main/README.zh-CN.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/Unclecheng-li/poc-lab/blob/main/README.zh-CN.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <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>How to Check CVE-2026-42945: Nginx Rift Trigger Conditions, Version Checks, and Upgrade Advice</title>
        <link>https://knightli.com/en/2026/05/15/nginx-rift-cve-2026-42945/</link>
        <pubDate>Fri, 15 May 2026 17:55:42 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/15/nginx-rift-cve-2026-42945/</guid>
        <description>&lt;p&gt;&lt;code&gt;CVE-2026-42945&lt;/code&gt; is a security vulnerability in NGINX Open Source and NGINX Plus. It is also being referred to as &lt;code&gt;Nginx Rift&lt;/code&gt;. The issue is in &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;, and the vulnerability type is heap-based buffer overflow.&lt;/p&gt;
&lt;p&gt;News like this is easy to turn into headlines such as &amp;ldquo;hidden for 18 years&amp;rdquo;, &amp;ldquo;remote control without a password&amp;rdquo;, or &amp;ldquo;30% of servers affected&amp;rdquo;. Those claims travel well, but when reading the patch notes and NVD description, it is better to separate the risk into concrete pieces: the issue is serious, and it does not require a logged-in account; but not every Nginx instance is automatically compromised. Triggering it requires specific rewrite configuration and request conditions.&lt;/p&gt;
&lt;h2 id=&#34;start-with-the-official-description&#34;&gt;Start with the official description
&lt;/h2&gt;&lt;p&gt;The NVD description of &lt;code&gt;CVE-2026-42945&lt;/code&gt; can be summarized as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It affects NGINX Plus and NGINX Open Source.&lt;/li&gt;
&lt;li&gt;The vulnerability is in &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The issue may be triggered when a &lt;code&gt;rewrite&lt;/code&gt; directive is followed by a &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt;, or &lt;code&gt;set&lt;/code&gt; directive, unnamed PCRE capture groups such as &lt;code&gt;$1&lt;/code&gt; and &lt;code&gt;$2&lt;/code&gt; are used, and the replacement string contains a question mark &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;An unauthenticated attacker can send a crafted request to trigger the vulnerability.&lt;/li&gt;
&lt;li&gt;The result may be a heap buffer overflow and restart of an NGINX worker process.&lt;/li&gt;
&lt;li&gt;If ASLR is disabled on the system, code execution is possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;F5, as the CNA, gives the following scores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CVSS v4.0: &lt;code&gt;9.2&lt;/code&gt;, Critical.&lt;/li&gt;
&lt;li&gt;CVSS v3.1: &lt;code&gt;8.1&lt;/code&gt;, High.&lt;/li&gt;
&lt;li&gt;CWE: &lt;code&gt;CWE-122 Heap-based Buffer Overflow&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So this is not a routine &amp;ldquo;bad config causes a 404&amp;rdquo; issue. It is a memory safety vulnerability covered by an official Nginx security fix.&lt;/p&gt;
&lt;h2 id=&#34;which-claims-need-context&#34;&gt;Which claims need context
&lt;/h2&gt;&lt;p&gt;First, &amp;ldquo;no password required&amp;rdquo; is best understood as unauthenticated attack. In other words, the attacker does not need to log in to an Nginx admin panel, obtain SSH access, or hold an application account. But that does not mean every public-facing Nginx instance can be casually taken over.&lt;/p&gt;
&lt;p&gt;Second, &amp;ldquo;direct remote control&amp;rdquo; depends on conditions. The more careful official framing is that the vulnerability can cause worker process restarts; on systems where ASLR is disabled, code execution is a possible outcome. On environments with ASLR enabled, proper distribution hardening, and restricted runtime privileges, the exploitation path becomes more complex.&lt;/p&gt;
&lt;p&gt;Third, &amp;ldquo;30% of servers affected&amp;rdquo; should not be treated as &amp;ldquo;all Nginx market share equals exposed attack surface&amp;rdquo;. Real exposure depends on the version, whether the affected module is present, whether the specific rewrite configuration exists, whether the distribution has already backported the patch, and how hardened the Nginx runtime environment is.&lt;/p&gt;
&lt;p&gt;The more accurate approach is simple: if you run Nginx in production, check it quickly; but do not decide whether you are affected based only on a headline percentage.&lt;/p&gt;
&lt;h2 id=&#34;how-to-determine-the-affected-scope&#34;&gt;How to determine the affected scope
&lt;/h2&gt;&lt;p&gt;According to nginx.org release information, the &lt;code&gt;nginx-1.30.1&lt;/code&gt; stable release and &lt;code&gt;nginx-1.31.0&lt;/code&gt; mainline release published on May 13, 2026 include multiple security fixes, including the &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt; buffer overflow tracked as &lt;code&gt;CVE-2026-42945&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you use official Nginx source builds or official packages, focus on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NGINX Open Source stable: upgrade to &lt;code&gt;1.30.1&lt;/code&gt; or later.&lt;/li&gt;
&lt;li&gt;NGINX Open Source mainline: upgrade to &lt;code&gt;1.31.0&lt;/code&gt; or later.&lt;/li&gt;
&lt;li&gt;NGINX Plus: check the fixed version for your F5-supported branch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you use Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, Alpine, container images, Plesk, control panels, Ingress Controller, or cloud-provider managed components, do not rely only on the upstream version shown by &lt;code&gt;nginx -v&lt;/code&gt;. Many distributions backport security fixes into older package versions. The version string may look old while the patch is already included.&lt;/p&gt;
&lt;h2 id=&#34;one-minute-urgency-check&#34;&gt;One-minute urgency check
&lt;/h2&gt;&lt;p&gt;Use these questions for a quick risk tiering:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Is this Nginx instance directly exposed to the internet, or is it part of an API Gateway, reverse proxy, load balancer, or Ingress entry layer?&lt;/li&gt;
&lt;li&gt;Are you using official Nginx packages, source builds, third-party control panels, or container images without having confirmed the &lt;code&gt;CVE-2026-42945&lt;/code&gt; fix status?&lt;/li&gt;
&lt;li&gt;Does the configuration contain complex &lt;code&gt;rewrite&lt;/code&gt; rules, especially consecutive &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt;, or &lt;code&gt;set&lt;/code&gt; directives and unnamed captures such as &lt;code&gt;$1&lt;/code&gt; and &lt;code&gt;$2&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Does any rewrite target include request paths, query parameters, or other user-controlled input?&lt;/li&gt;
&lt;li&gt;Is the system weakly hardened, for example with ASLR disabled, overly privileged workers, or overly broad container permissions?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the first two items apply and rewrite configuration has not yet been reviewed, treat it as high priority. Public entry points, shared environments, Kubernetes Ingress, edge proxies, and Nginx instances carrying login or API traffic should be upgraded or replaced with a confirmed fixed package first.&lt;/p&gt;
&lt;h2 id=&#34;how-to-confirm-fixes-on-debian--ubuntu--rhel--alpine&#34;&gt;How to confirm fixes on Debian / Ubuntu / RHEL / Alpine
&lt;/h2&gt;&lt;p&gt;Distribution users should not look only at &lt;code&gt;nginx -v&lt;/code&gt;. Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, and Alpine often backport security patches into stable branches, so the visible version may still be lower than nginx.org&amp;rsquo;s &lt;code&gt;1.30.1&lt;/code&gt; or &lt;code&gt;1.31.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On Debian / Ubuntu, check security advisories, package changelog, and upgrade candidates:&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;/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;nginx -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -V
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt list --upgradable &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt changelog nginx &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;CVE-2026-42945&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;On RHEL / AlmaLinux / Rocky Linux, check security updates and package changelog:&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;yum updateinfo list security &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rpm -q --changelog nginx &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;CVE-2026-42945&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;On Alpine, check the installed package version and security branch updates:&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;apk info -v nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apk version -v nginx
&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 package manager, distribution security advisory, or vendor advisory explicitly says &lt;code&gt;CVE-2026-42945&lt;/code&gt; is fixed, you can treat it as backported even if the upstream version number looks old. Conversely, if the version looks new but the source is unclear, still confirm the build date and patch source.&lt;/p&gt;
&lt;h2 id=&#34;how-to-check-container-images-and-ingress-controller&#34;&gt;How to check container images and Ingress Controller
&lt;/h2&gt;&lt;p&gt;In container environments, check the Nginx inside the image, not only the host. First confirm the actual embedded version:&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;docker run --rm your-nginx-image nginx -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm your-nginx-image nginx -V
&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 check whether the base image has been updated. If the image is built on Debian, Ubuntu, Alpine, or distribution packages, apply the same advisory and changelog checks for that distribution. Restarting an old image is not useful; the image itself needs to be rebuilt or replaced.&lt;/p&gt;
&lt;p&gt;For Kubernetes Ingress, confirm three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whether the Ingress Controller project has published an advisory or fixed release for &lt;code&gt;CVE-2026-42945&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Whether the running controller image digest has actually changed, rather than only the tag.&lt;/li&gt;
&lt;li&gt;Whether the controller&amp;rsquo;s embedded Nginx version, build flags, and template configuration still contain high-risk rewrite rules.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Start by checking the running image:&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;kubectl -n ingress-nginx get pods -o wide
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx describe pod &amp;lt;pod-name&amp;gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i 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;If you use a cloud-provider managed Ingress or gateway, check the corresponding cloud service advisory. Managed components usually cannot be fixed by running &lt;code&gt;apt upgrade&lt;/code&gt; yourself; you need the provider&amp;rsquo;s fix or a switch to a fixed version.&lt;/p&gt;
&lt;h2 id=&#34;which-rewrite-patterns-deserve-attention&#34;&gt;Which rewrite patterns deserve attention
&lt;/h2&gt;&lt;p&gt;This vulnerability is related to &lt;code&gt;rewrite&lt;/code&gt; configuration. Start by searching Nginx 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;grep -R &lt;span class=&#34;s2&#34;&gt;&amp;#34;rewrite&amp;#34;&lt;/span&gt; /etc/nginx -n
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -R &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\&lt;/span&gt;$&lt;span class=&#34;s2&#34;&gt;[0-9]&amp;#34;&lt;/span&gt; /etc/nginx -n
&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;Pay attention to patterns like:&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-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;rewrite&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;^/old/(.*)&lt;/span&gt;$ &lt;span class=&#34;s&#34;&gt;/new/&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$1?&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;permanent&lt;/span&gt;&lt;span class=&#34;p&#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;The unnamed captures such as &lt;code&gt;$1&lt;/code&gt; and &lt;code&gt;$2&lt;/code&gt;, plus the &lt;code&gt;?&lt;/code&gt; in the replacement target, are among the key conditions described by the official sources. During review, pay special attention to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;rewrite&lt;/code&gt; followed by another &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt;, or &lt;code&gt;set&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Broad captures such as &lt;code&gt;(.*)&lt;/code&gt; and &lt;code&gt;(.+)&lt;/code&gt; that are reused as &lt;code&gt;$1&lt;/code&gt; or &lt;code&gt;$2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rewrite targets containing &lt;code&gt;?&lt;/code&gt; to append or discard query parameters.&lt;/li&gt;
&lt;li&gt;Rewrite input coming from public paths, Host, URI, parameters, or upstream-controlled values.&lt;/li&gt;
&lt;li&gt;Rewrite rules generated by panels, gateways, Ingress annotations, or templates.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you cannot upgrade immediately, use temporary mitigations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reduce complex rewrite rules.&lt;/li&gt;
&lt;li&gt;Replace unnamed captures with clearer named captures.&lt;/li&gt;
&lt;li&gt;Avoid unnecessary &lt;code&gt;?&lt;/code&gt; concatenation in replacement strings.&lt;/li&gt;
&lt;li&gt;Add WAF or reverse-proxy rules for high-risk entry points.&lt;/li&gt;
&lt;li&gt;Confirm that ASLR is enabled.&lt;/li&gt;
&lt;li&gt;Reduce Nginx worker privileges and verify systemd sandboxing, SELinux/AppArmor, and related hardening.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These measures are mitigations, not replacements for patching.&lt;/p&gt;
&lt;h2 id=&#34;remediation-priority&#34;&gt;Remediation priority
&lt;/h2&gt;&lt;p&gt;Prioritize by exposure:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Public-facing Nginx entry points.&lt;/li&gt;
&lt;li&gt;Reverse proxies, API Gateway, and edge gateways.&lt;/li&gt;
&lt;li&gt;Nginx in multi-tenant environments.&lt;/li&gt;
&lt;li&gt;Kubernetes Ingress Controller.&lt;/li&gt;
&lt;li&gt;Plesk, control panels, marketplace images, and other components that bundle Nginx.&lt;/li&gt;
&lt;li&gt;Internal Nginx instances that carry critical business traffic.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;how-to-verify-after-upgrading-nginx--t-reload-and-worker-state&#34;&gt;How to verify after upgrading: nginx -t, reload, and worker state
&lt;/h2&gt;&lt;p&gt;After updating, do not stop at &amp;ldquo;the package manager succeeded&amp;rdquo;. Confirm the configuration, process state, and actual binary have all switched over. First validate the 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;/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;nginx -t
&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 there are no errors, reload smoothly:&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;systemctl reload nginx
&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 package upgrade replaced the binary, confirm old workers have exited:&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;ps aux &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep nginx
&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;You can also inspect the master process start time and binary path to ensure the running service is not an old process still resident in memory. If needed, schedule a maintenance window and restart the service so old workers or old containers do not continue handling requests.&lt;/p&gt;
&lt;p&gt;For containers and Ingress, also confirm the new image rollout has actually completed:&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;kubectl -n ingress-nginx rollout status deployment/&amp;lt;deployment-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx get pods -o wide
&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;The key verification question is not &amp;ldquo;did the command run&amp;rdquo;, but &amp;ldquo;is live traffic now handled by Nginx processes that include the fix&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;do-not-ignore-the-same-nginx-security-batch&#34;&gt;Do not ignore the same Nginx security batch
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;1.30.1&lt;/code&gt; and &lt;code&gt;1.31.0&lt;/code&gt; releases published by nginx.org on the same day fixed more than &lt;code&gt;CVE-2026-42945&lt;/code&gt;. The release information also mentions HTTP/2 request injection, SCGI/uWSGI buffer overread, charset module buffer overread, HTTP/3 address spoofing, OCSP resolver use-after-free, and other issues.&lt;/p&gt;
&lt;p&gt;That means production environments should not only add a temporary rule for a single CVE. Treat this Nginx security release as an overall upgrade.&lt;/p&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The key point of &lt;code&gt;CVE-2026-42945&lt;/code&gt; is not &amp;ldquo;all Nginx instances can be instantly taken over&amp;rdquo;. It is a long-standing memory safety vulnerability in the rewrite module that can be triggered by unauthenticated requests under specific configurations. The most direct result is worker crash and restart; on weaker environments such as systems with ASLR disabled, code execution risk is higher.&lt;/p&gt;
&lt;p&gt;For operations teams, the handling order is straightforward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirm the Nginx source and version.&lt;/li&gt;
&lt;li&gt;Check distribution, F5, nginx.org, or cloud-provider advisories.&lt;/li&gt;
&lt;li&gt;Upgrade to a fixed version or distribution security package as soon as possible.&lt;/li&gt;
&lt;li&gt;Review complex rewrite configuration, especially combinations of &lt;code&gt;$1&lt;/code&gt;, &lt;code&gt;$2&lt;/code&gt;, and &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Confirm ASLR, privilege isolation, and service reload state.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The headline can be scary. The fix should be calm: confirm exposure, upgrade, then clean up high-risk rewrite rules.&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://nvd.nist.gov/vuln/detail/CVE-2026-42945&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-42945&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nginx.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;nginx.org release information&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://my.f5.com/manage/s/article/K000161019&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;F5 Security Advisory K000161019&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://depthfirst.com/nginx-rift&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DepthFirst: Nginx Rift&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Dirty Frag, Copy Fail, and Fragnesia: Comparing Three Recent Linux Local Privilege Escalation Flaws</title>
        <link>https://knightli.com/en/2026/05/15/linux-lpe-dirty-frag-copy-fail-fragnesia-analysis/</link>
        <pubDate>Fri, 15 May 2026 13:24:04 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/15/linux-lpe-dirty-frag-copy-fail-fragnesia-analysis/</guid>
        <description>&lt;p&gt;Several high-profile Linux kernel local privilege escalation vulnerabilities have appeared recently: Dirty Frag, Copy Fail, and Fragnesia. They look like a single family of events because the end result is similar: a low-privilege local user may be able to become root.&lt;/p&gt;
&lt;p&gt;But from an operations perspective, they should not be treated as one vulnerability. Their entry modules, trigger paths, mitigation options, and patch timelines differ. A better way to understand them is this: they expose a shared risk around the complex boundary between the Linux page cache, &lt;code&gt;splice&lt;/code&gt;, socket buffers, and crypto paths.&lt;/p&gt;
&lt;p&gt;This post only covers risk and response analysis. It does not include reproducible exploitation steps.&lt;/p&gt;
&lt;h2 id=&#34;what-the-three-flaws-are&#34;&gt;What the Three Flaws Are
&lt;/h2&gt;&lt;h3 id=&#34;dirty-frag-cve-2026-43284&#34;&gt;Dirty Frag: CVE-2026-43284
&lt;/h3&gt;&lt;p&gt;Dirty Frag mainly points to a page-cache write issue in the Linux kernel networking path. Public write-ups usually discuss it together with two issues: the &lt;code&gt;xfrm-ESP&lt;/code&gt; side, CVE-2026-43284, and the &lt;code&gt;rxrpc&lt;/code&gt; side, CVE-2026-43500.&lt;/p&gt;
&lt;p&gt;CVE-2026-43284 is related to in-place decryption when ESP handles shared &lt;code&gt;skb&lt;/code&gt; fragments. The key point is not that an attacker directly modifies a disk file, but that the kernel can write to shared pages it should not modify, affecting file contents in the page cache.&lt;/p&gt;
&lt;p&gt;Operationally, remember that Dirty Frag reaches &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, and &lt;code&gt;rxrpc&lt;/code&gt;, a set of kernel modules and networking subsystem paths. It is tied to IPsec, ESP, and RxRPC, so temporary mitigation also focuses on those modules.&lt;/p&gt;
&lt;h3 id=&#34;copy-fail-cve-2026-31431&#34;&gt;Copy Fail: CVE-2026-31431
&lt;/h3&gt;&lt;p&gt;Copy Fail is a Linux kernel local privilege escalation vulnerability disclosed by Theori / Xint Code. Its entry point is not the IPsec networking path, but the kernel userspace crypto API around &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Public explanations describe it as originating from an in-place optimization introduced in 2017. In some cases, the kernel failed to copy data as expected and instead placed page-cache pages into a writable destination path. An attacker can combine &lt;code&gt;AF_ALG&lt;/code&gt; with &lt;code&gt;splice()&lt;/code&gt; to perform a small controlled write to page-cache-backed pages.&lt;/p&gt;
&lt;p&gt;Its risk comes from strong exploitability and broad impact across mainstream distributions. Unlike Dirty Frag, Copy Fail&amp;rsquo;s temporary mitigation focuses on restricting or disabling &lt;code&gt;algif_aead&lt;/code&gt;, and on limiting &lt;code&gt;AF_ALG&lt;/code&gt; socket creation in container and CI environments.&lt;/p&gt;
&lt;h3 id=&#34;fragnesia-cve-2026-46300&#34;&gt;Fragnesia: CVE-2026-46300
&lt;/h3&gt;&lt;p&gt;Fragnesia is another Linux kernel local privilege escalation vulnerability disclosed by V12 Security, and it belongs to a similar attack surface as Dirty Frag. It is not the same bug as Dirty Frag, but it still revolves around IPsec ESP / &lt;code&gt;rxrpc&lt;/code&gt; related modules and page-cache write effects.&lt;/p&gt;
&lt;p&gt;AlmaLinux describes it as the third local-root issue in the same broad code area. The key problem is that &lt;code&gt;skb_try_coalesce()&lt;/code&gt; did not preserve the shared-fragment marker when coalescing socket buffer fragments, which could later let the XFRM ESP-in-TCP receive path decrypt in place over external page-cache pages.&lt;/p&gt;
&lt;p&gt;In short, Fragnesia is closer to Dirty Frag. Both revolve around &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt;, &lt;code&gt;skb&lt;/code&gt; fragments, and ESP decryption paths. Their temporary mitigations also overlap heavily.&lt;/p&gt;
&lt;h2 id=&#34;similarities-why-they-are-dangerous&#34;&gt;Similarities: Why They Are Dangerous
&lt;/h2&gt;&lt;p&gt;The common thread is not that the exact code locations are identical, but that the attack outcome and risk model are very similar.&lt;/p&gt;
&lt;p&gt;First, all three are local privilege escalation issues. Attackers usually need ordinary local code execution first, then they can attempt to become root. For a single-user desktop this is not remote one-click compromise; for multi-user servers, CI runners, container hosts, shared development machines, and VPS instances with exposed SSH, low-privilege entry points are not rare.&lt;/p&gt;
&lt;p&gt;Second, all three involve page-cache writes. Attackers may not permanently modify the file on disk; instead, they affect the in-memory page-cache copy. This makes traditional integrity checks less reliable: the disk hash can remain normal while the execution path reads polluted page-cache content.&lt;/p&gt;
&lt;p&gt;Third, they are closer to deterministic logic bugs than timing-sensitive race conditions. Public material repeatedly notes that these issues do not require winning a race condition. Defenders should not underestimate exploit reliability based on older assumptions.&lt;/p&gt;
&lt;p&gt;Fourth, they amplify the risk of container and automation environments. Low-privilege code inside containers, CI jobs, build scripts, or third-party plugins can turn a &amp;ldquo;local issue&amp;rdquo; into a platform-level issue if it can reach the relevant host kernel interfaces.&lt;/p&gt;
&lt;h2 id=&#34;differences-one-mitigation-does-not-cover-all&#34;&gt;Differences: One Mitigation Does Not Cover All
&lt;/h2&gt;&lt;p&gt;The biggest difference is the entry module.&lt;/p&gt;
&lt;p&gt;Copy Fail&amp;rsquo;s critical entry point is &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;, part of the kernel userspace crypto API. Its temporary defense focuses on disabling or restricting &lt;code&gt;algif_aead&lt;/code&gt;, and using seccomp to block containers from creating &lt;code&gt;AF_ALG&lt;/code&gt; sockets.&lt;/p&gt;
&lt;p&gt;Dirty Frag&amp;rsquo;s critical entry point is &lt;code&gt;xfrm-ESP&lt;/code&gt; and &lt;code&gt;rxrpc&lt;/code&gt;. It is closer to protocol and socket buffer handling paths. Temporary defense typically considers disabling &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, and &lt;code&gt;rxrpc&lt;/code&gt;, but that can affect IPsec, VPNs, tunnels, or related networking capabilities.&lt;/p&gt;
&lt;p&gt;Fragnesia sits in a similar region to Dirty Frag, but the concrete issue is that &lt;code&gt;skb_try_coalesce()&lt;/code&gt; did not preserve the shared-fragment marker. It is more like another branch of the Dirty Frag risk surface than a Copy Fail crypto API issue.&lt;/p&gt;
&lt;p&gt;So, fixing Copy Fail does not mean Dirty Frag and Fragnesia are covered. Likewise, disabling &lt;code&gt;esp4&lt;/code&gt; / &lt;code&gt;esp6&lt;/code&gt; does not automatically remove Copy Fail. Their patch state and mitigation strategy must be checked separately.&lt;/p&gt;
&lt;h2 id=&#34;how-to-judge-exposure&#34;&gt;How to Judge Exposure
&lt;/h2&gt;&lt;p&gt;For these vulnerabilities, do not judge only by distribution name or kernel major version. Distributions backport fixes, cloud vendors maintain their own kernel branches, and enterprise distributions may carry additional patches.&lt;/p&gt;
&lt;p&gt;A safer sequence is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check the distribution security advisory and kernel package changelog.&lt;/li&gt;
&lt;li&gt;Verify whether the current kernel package fixes the relevant CVE.&lt;/li&gt;
&lt;li&gt;For cloud servers, container hosts, and CI nodes, also check cloud or platform advisories.&lt;/li&gt;
&lt;li&gt;For temporary mitigations, confirm whether the business depends on the affected module.&lt;/li&gt;
&lt;li&gt;After a kernel update, schedule a reboot and confirm the running kernel has changed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The most common trap is &amp;ldquo;the package is updated, but the machine has not rebooted.&amp;rdquo; Kernel vulnerabilities are not like ordinary userspace service updates. Until the system boots into the new kernel, the old kernel may still be running.&lt;/p&gt;
&lt;h2 id=&#34;operational-priority&#34;&gt;Operational Priority
&lt;/h2&gt;&lt;p&gt;The systems that deserve the highest priority are not all Linux machines equally. Start where low-privilege code execution is most likely.&lt;/p&gt;
&lt;p&gt;Highest-priority environments include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-user login servers&lt;/li&gt;
&lt;li&gt;CI / CD runners&lt;/li&gt;
&lt;li&gt;Build and artifact packaging machines&lt;/li&gt;
&lt;li&gt;Container hosts and Kubernetes nodes&lt;/li&gt;
&lt;li&gt;Shared development machines&lt;/li&gt;
&lt;li&gt;Cloud servers and VPS instances exposing SSH&lt;/li&gt;
&lt;li&gt;Platforms running third-party scripts, plugins, or job queues&lt;/li&gt;
&lt;li&gt;Machines with web vulnerabilities, weak passwords, or historical compromise signals&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Closed, single-user machines with no external code execution entry point are still at risk if vulnerable, but they can usually be handled later.&lt;/p&gt;
&lt;h2 id=&#34;how-to-treat-temporary-mitigation&#34;&gt;How to Treat Temporary Mitigation
&lt;/h2&gt;&lt;p&gt;Temporary mitigation is not a replacement for a patch. Its value is reducing exposure when you cannot immediately reboot or are waiting for distribution packages.&lt;/p&gt;
&lt;p&gt;For Copy Fail, focus on &lt;code&gt;algif_aead&lt;/code&gt; and &lt;code&gt;AF_ALG&lt;/code&gt;. If the business does not use the kernel AF_ALG crypto interface, evaluate disabling the related module. In container environments, check seccomp policies first so untrusted workloads cannot freely create the relevant socket.&lt;/p&gt;
&lt;p&gt;For Dirty Frag and Fragnesia, focus on &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, and &lt;code&gt;rxrpc&lt;/code&gt;. If the system does not depend on IPsec ESP, related VPNs, tunnels, or RxRPC, consider temporary disabling. Do not do this blindly in production because these modules may support real networking workloads.&lt;/p&gt;
&lt;p&gt;The final path is still a kernel update. Temporary mitigation can reduce attack surface, but it cannot prove the system is fully safe.&lt;/p&gt;
&lt;h2 id=&#34;what-these-three-flaws-tell-us&#34;&gt;What These Three Flaws Tell Us
&lt;/h2&gt;&lt;p&gt;The important warning is not just the number of CVEs. These flaws all cluster around high-complexity kernel paths: zero-copy, &lt;code&gt;splice&lt;/code&gt;, socket buffers, the page cache, crypto interfaces, and protocol-stack optimizations.&lt;/p&gt;
&lt;p&gt;These paths deliver performance, but their ownership boundaries are hard to maintain. Whether a fragment is shared, whether a page may be written in place, and whether an optimization truly only reduces copying all become security boundaries.&lt;/p&gt;
&lt;p&gt;For security and operations teams, the takeaways are practical:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Treat local privilege escalation as an amplifier for existing low-privilege entry points.&lt;/li&gt;
&lt;li&gt;Containers are not a natural isolation boundary for kernel vulnerabilities.&lt;/li&gt;
&lt;li&gt;File integrity checks cannot look only at disk contents.&lt;/li&gt;
&lt;li&gt;CI, build machines, and plugin platforms are high-priority assets.&lt;/li&gt;
&lt;li&gt;Kernel patching requires verifying both &amp;ldquo;installed&amp;rdquo; and &amp;ldquo;running&amp;rdquo; states.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;Dirty Frag, Copy Fail, and Fragnesia are all high-priority recent Linux local privilege escalation events, but they are not three names for one vulnerability.&lt;/p&gt;
&lt;p&gt;Copy Fail goes through the &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt; crypto API path. Dirty Frag goes through &lt;code&gt;xfrm-ESP&lt;/code&gt; and &lt;code&gt;rxrpc&lt;/code&gt;. Fragnesia, in a nearby Dirty Frag attack surface, again triggers page-cache write risk through &lt;code&gt;skb&lt;/code&gt; fragment marker handling.&lt;/p&gt;
&lt;p&gt;Operationally, the safest response is to update the kernel according to distribution advisories and reboot. For systems that cannot be updated immediately, evaluate temporary module disabling or tighter seccomp rules based on the actual vulnerability entry point. Prioritize multi-tenant systems, CI, container hosts, and shared development environments.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Theori Copy Fail notes: &lt;a class=&#34;link&#34; href=&#34;https://github.com/theori-io/copy-fail-CVE-2026-31431&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/theori-io/copy-fail-CVE-2026-31431&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CERT-EU Copy Fail advisory: &lt;a class=&#34;link&#34; href=&#34;https://cert.europa.eu/publications/security-advisories/2026-005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cert.europa.eu/publications/security-advisories/2026-005/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AlmaLinux Dirty Frag notes: &lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/blog/2026-05-07-dirty-frag/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://almalinux.org/blog/2026-05-07-dirty-frag/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AlmaLinux Fragnesia notes: &lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;V12 Security Fragnesia PoC notes: &lt;a class=&#34;link&#34; href=&#34;https://github.com/v12-security/pocs/tree/main/fragnesia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/v12-security/pocs/tree/main/fragnesia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>May 2026 Edge High-Risk Vulnerability CVE-2026-2441: Malicious Pages May Trigger Remote Code Execution</title>
        <link>https://knightli.com/en/2026/05/06/microsoft-edge-cve-2026-2441-security-update/</link>
        <pubDate>Wed, 06 May 2026 08:30:17 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/06/microsoft-edge-cve-2026-2441-security-update/</guid>
        <description>&lt;p&gt;Microsoft Edge has recently released several rounds of security updates to fix multiple issues from the Chromium project and Edge components. Among them, &lt;code&gt;CVE-2026-2441&lt;/code&gt; has been reported by the Chromium team as exploited in the wild, and fixes have been provided for both the Microsoft Edge Stable and Extended Stable channels.&lt;/p&gt;
&lt;p&gt;If you use Edge for daily browsing, especially on Windows devices used for account logins, email, online banking, admin consoles, or enterprise systems, you should confirm that the browser has been updated to the latest version.&lt;/p&gt;
&lt;h2 id=&#34;vulnerability-risk&#34;&gt;Vulnerability Risk
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CVE-2026-2441&lt;/code&gt; is a high-risk vulnerability that has already attracted attacker attention and has been exploited. A common browser attack path is to lure users to a page containing specially crafted content, then trigger a flaw in the rendering engine or related components.&lt;/p&gt;
&lt;p&gt;In real attacks, this type of vulnerability may lead to the following risks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Execute malicious code or chain with other vulnerabilities to break through sandbox restrictions.&lt;/li&gt;
&lt;li&gt;Bypass some security controls and expand the attack surface.&lt;/li&gt;
&lt;li&gt;Steal sensitive browser data, session information, or page content.&lt;/li&gt;
&lt;li&gt;Cause browser crashes, abnormal page behavior, or denial of service.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Official vendors usually do not disclose full attack details immediately after a patch is released, to avoid making the vulnerability easier to reproduce. For most users, the most effective protection is to update promptly.&lt;/p&gt;
&lt;h2 id=&#34;affected-scope&#34;&gt;Affected Scope
&lt;/h2&gt;&lt;p&gt;Microsoft Edge is based on Chromium, so related vulnerabilities can affect Edge versions across multiple platforms, including Windows, macOS, Linux, and mobile versions. Any browser version below a fixed release remains at risk.&lt;/p&gt;
&lt;p&gt;According to the Microsoft Edge security update release notes, Edge Stable Channel &lt;code&gt;145.0.3800.58&lt;/code&gt;, released on February 14, 2026, includes the fix for &lt;code&gt;CVE-2026-2441&lt;/code&gt;; Extended Stable Channel &lt;code&gt;144.0.3719.130&lt;/code&gt;, released on February 17, 2026, also includes the fix. Later versions continue to include accumulated Chromium security patches.&lt;/p&gt;
&lt;p&gt;As of May 6, 2026, the latest Stable Channel security version listed on the Edge security update page is &lt;code&gt;147.0.3912.98&lt;/code&gt;, released on April 30, 2026. If your local version is clearly older than these releases, update immediately.&lt;/p&gt;
&lt;h2 id=&#34;update-edge-now&#34;&gt;Update Edge Now
&lt;/h2&gt;&lt;p&gt;Regular users can check and update Edge with these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Microsoft Edge.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;edge://settings/help&lt;/code&gt; in the address bar and press Enter.&lt;/li&gt;
&lt;li&gt;Wait for the browser to check for updates automatically.&lt;/li&gt;
&lt;li&gt;After the update finishes, click &amp;ldquo;Restart&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In enterprise environments, administrators should check endpoint management policies, WSUS, Intune, Group Policy, or third-party patching systems to make sure Edge updates are not being delayed for too long. For devices that cannot be updated immediately, reduce access to unknown websites and prioritize limiting external web access for high-risk user groups.&lt;/p&gt;
&lt;h2 id=&#34;protection-suggestions&#34;&gt;Protection Suggestions
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Upgrade Edge as soon as possible and restart the browser after the update.&lt;/li&gt;
&lt;li&gt;Do not click email links, chat links, or ad redirects from unknown sources.&lt;/li&gt;
&lt;li&gt;Avoid using outdated browsers to access admin consoles, payment services, email, or other sensitive pages.&lt;/li&gt;
&lt;li&gt;Keep Windows, antivirus software, and browser extensions updated.&lt;/li&gt;
&lt;li&gt;Remove browser extensions that are unused or from unclear sources.&lt;/li&gt;
&lt;/ul&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://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnotes-security&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Microsoft Edge release notes for security updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://msrc.microsoft.com/update-guide/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Microsoft Security Update Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The key point about &lt;code&gt;CVE-2026-2441&lt;/code&gt; is not how complex the vulnerability details are, but that it has been reported as exploited in the wild. For personal users and enterprise endpoints, the most direct response is to open &lt;code&gt;edge://settings/help&lt;/code&gt;, confirm that Edge has finished updating, and restart the browser.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Copy Fail CVE-2026-31431: Container Escape Risk in the Linux Kernel File-Copy Path</title>
        <link>https://knightli.com/en/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/</link>
        <pubDate>Fri, 01 May 2026 18:42:34 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/</guid>
        <description>&lt;p&gt;Copy Fail is a vulnerability in the Linux kernel file-copy path, tracked as &lt;code&gt;CVE-2026-31431&lt;/code&gt;.
Bugcrowd&amp;rsquo;s analysis describes it as a kernel-level issue worth attention: under specific conditions, an unprivileged user can abuse file-copy logic to trigger unauthorized writes, leading to privilege escalation or container escape.&lt;/p&gt;
&lt;p&gt;From a risk perspective, this is not a normal application-layer vulnerability.
The issue happens in the kernel path that handles file copying and page cache behavior, so its impact can extend to containers, shared hosts, CI/CD runners, PaaS platforms, and multi-tenant Linux environments.
If an attacker can already run low-privileged code on a system, the vulnerability may become a stepping stone for breaking through isolation boundaries.&lt;/p&gt;
&lt;h2 id=&#34;where-the-vulnerability-roughly-lives&#34;&gt;Where the Vulnerability Roughly Lives
&lt;/h2&gt;&lt;p&gt;Copy Fail is related to Linux kernel file-copy capabilities.
Modern Linux provides several efficient copy paths, such as &lt;code&gt;copy_file_range&lt;/code&gt;, splice-like paths, and data-copy optimizations across different file systems.
These mechanisms are designed to reduce data movement between user space and kernel space and improve large-file copy performance.&lt;/p&gt;
&lt;p&gt;The problem is that high-performance copy paths often reuse page cache, file offsets, permission checks, and file-system callbacks.
If a boundary condition is not handled strictly enough, the kernel may perform a write in the wrong permission context, or expose data pages that should not be controlled by the attacker.&lt;/p&gt;
&lt;p&gt;The core risk of Copy Fail can be summarized as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the attacker does not need root privileges;&lt;/li&gt;
&lt;li&gt;the attack entry point comes from common file-copy capabilities;&lt;/li&gt;
&lt;li&gt;the affected logic runs in kernel space;&lt;/li&gt;
&lt;li&gt;in container environments, the vulnerability may bypass namespace and mount isolation;&lt;/li&gt;
&lt;li&gt;successful exploitation may write to host content that the container should not be able to modify.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That is why it has drawn attention.
Container security depends on isolation provided by the Linux kernel. Once a kernel path itself allows unauthorized writes, the container boundary becomes fragile.&lt;/p&gt;
&lt;h2 id=&#34;why-container-scenarios-are-more-sensitive&#34;&gt;Why Container Scenarios Are More Sensitive
&lt;/h2&gt;&lt;p&gt;Containers are not virtual machines.
Processes inside a container share the same Linux kernel with the host and are isolated through mechanisms such as namespaces, cgroups, capabilities, seccomp, and AppArmor/SELinux.&lt;/p&gt;
&lt;p&gt;If a vulnerability exists in a user-space service, it usually affects only one container or one process.
But if the vulnerability is in the kernel, especially one that can be triggered by an unprivileged user, an attacker may influence the host from inside a container.&lt;/p&gt;
&lt;p&gt;That is where Copy Fail becomes dangerous.
Many platforms allow users to submit build jobs, run scripts, start containers, or execute plugins.
As long as an attacker can run code inside a container, they may try to use the kernel file-copy path to break isolation.&lt;/p&gt;
&lt;p&gt;High-risk environments include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;untrusted workloads in Kubernetes clusters;&lt;/li&gt;
&lt;li&gt;shared runners on CI/CD platforms;&lt;/li&gt;
&lt;li&gt;sandbox platforms that allow users to upload and execute code;&lt;/li&gt;
&lt;li&gt;multi-tenant Linux hosts;&lt;/li&gt;
&lt;li&gt;containerized PaaS environments;&lt;/li&gt;
&lt;li&gt;systems that run third-party plugins or extensions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If these environments are running affected kernels and lack extra restrictions, the risk rises significantly.&lt;/p&gt;
&lt;h2 id=&#34;impact-depends-on-kernel-patch-status&#34;&gt;Impact Depends on Kernel Patch Status
&lt;/h2&gt;&lt;p&gt;You cannot judge this kind of vulnerability only by distribution name.
For the same Ubuntu, Debian, RHEL, Fedora, or Arch version, exposure depends on the kernel package that is actually running and whether the distribution has backported the fix.&lt;/p&gt;
&lt;p&gt;During triage, prioritize three checks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The currently running kernel version.&lt;/li&gt;
&lt;li&gt;Whether the distribution security advisory mentions &lt;code&gt;CVE-2026-31431&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Whether the cloud provider or managed platform has patched the host kernel.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can first confirm the kernel version on 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;/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;Then check distribution security advisories, kernel changelogs, or cloud platform notices.
Do not judge safety only from the major version, because many enterprise distributions backport security fixes to older kernel branches.&lt;/p&gt;
&lt;h2 id=&#34;temporary-mitigation-ideas&#34;&gt;Temporary Mitigation Ideas
&lt;/h2&gt;&lt;p&gt;The most reliable fix is still to update the kernel.
But in environments where patches cannot be deployed immediately, you can reduce exposure first.&lt;/p&gt;
&lt;p&gt;Common mitigation directions include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;disallow untrusted users from running privileged containers;&lt;/li&gt;
&lt;li&gt;avoid mounting sensitive host paths into containers;&lt;/li&gt;
&lt;li&gt;tighten container capabilities, especially avoiding unnecessary &lt;code&gt;CAP_SYS_ADMIN&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;use seccomp, AppArmor, or SELinux to restrict dangerous system calls and file access;&lt;/li&gt;
&lt;li&gt;move untrusted workloads to stronger virtual-machine isolation;&lt;/li&gt;
&lt;li&gt;destroy CI/CD runners per job instead of reusing the same host for a long time;&lt;/li&gt;
&lt;li&gt;monitor abnormal file writes, permission changes, and signs of container escape.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These measures do not replace patches.
Their role is to reduce exploitation success rate and impact, especially before patches reach production systems.&lt;/p&gt;
&lt;h2 id=&#34;patching-priority&#34;&gt;Patching Priority
&lt;/h2&gt;&lt;p&gt;Prioritize remediation by environment risk.&lt;/p&gt;
&lt;p&gt;Patch first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;platforms that expose container execution to external users;&lt;/li&gt;
&lt;li&gt;CI/CD nodes that run untrusted code;&lt;/li&gt;
&lt;li&gt;multi-tenant Kubernetes nodes;&lt;/li&gt;
&lt;li&gt;systems with user-defined plugins or script execution;&lt;/li&gt;
&lt;li&gt;shared development machines, teaching machines, and lab platforms.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Relatively lower priority:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;single-user desktops;&lt;/li&gt;
&lt;li&gt;internal hosts that only run trusted services;&lt;/li&gt;
&lt;li&gt;environments that already isolate untrusted code with virtual machines.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Even when risk is lower, it is still best to update the kernel through the distribution.
Kernel vulnerabilities are often chained into more complex attacks, and delaying patches rarely provides much benefit.&lt;/p&gt;
&lt;h2 id=&#34;checklist-for-operations-teams&#34;&gt;Checklist for Operations Teams
&lt;/h2&gt;&lt;p&gt;You can process it in this order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inventory all Linux hosts and container nodes.&lt;/li&gt;
&lt;li&gt;Mark machines that run untrusted code.&lt;/li&gt;
&lt;li&gt;Check the current kernel version and distribution security advisories.&lt;/li&gt;
&lt;li&gt;Update high-risk nodes first.&lt;/li&gt;
&lt;li&gt;Apply temporary isolation policies to nodes that cannot be updated immediately.&lt;/li&gt;
&lt;li&gt;Review container runtime configuration and remove unnecessary privileges and host mounts.&lt;/li&gt;
&lt;li&gt;Reboot nodes after updating and confirm that the new kernel is actually running.&lt;/li&gt;
&lt;li&gt;Keep change records for later audit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Installing a kernel package does not mean the system is already running the new kernel.
You must reboot after updating and confirm again:&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;h2 id=&#34;summary&#34;&gt;Summary
&lt;/h2&gt;&lt;p&gt;The key point of Copy Fail / &lt;code&gt;CVE-2026-31431&lt;/code&gt; is not that an application crashes, but that there is a permission-boundary issue in the Linux kernel file-copy path.
It gives unprivileged code a chance to touch higher-privilege data-write paths, so it deserves special attention in container and multi-tenant environments.&lt;/p&gt;
&lt;p&gt;When handling this type of vulnerability, the two most important actions are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;follow kernel patches from your distribution or cloud provider as soon as possible;&lt;/li&gt;
&lt;li&gt;before patches are deployed, restrict untrusted code, privileged containers, and sensitive host mounts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For personal desktops, it may not be an immediate panic issue.
But for teams running container platforms, CI/CD, sandboxes, and shared hosts, it should be treated as a high-priority kernel security update.&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.bugcrowd.com/blog/what-we-know-about-copy-fail-cve-2026-31431/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Bugcrowd: What We Know About Copy Fail CVE-2026-31431&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://copy.fail/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Copy Fail official explanation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
