<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Joho no Todai</title>
    <description>The latest articles on DEV Community by Joho no Todai (@joho_todai).</description>
    <link>https://dev.to/joho_todai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4161023%2Fc5a737b8-a52f-49c0-a7fd-d85bf8132422.png</url>
      <title>DEV Community: Joho no Todai</title>
      <link>https://dev.to/joho_todai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joho_todai"/>
    <language>en</language>
    <item>
      <title>Linux Kernel TCP Flaw Scores CVSS 9.8 as Anthropic AI Demonstrates Root Access in 53 Minutes</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Sat, 31 Oct 2026 15:00:10 +0000</pubDate>
      <link>https://dev.to/joho_todai/linux-kernel-tcp-flaw-scores-cvss-98-as-anthropic-ai-demonstrates-root-access-in-53-minutes-2dca</link>
      <guid>https://dev.to/joho_todai/linux-kernel-tcp-flaw-scores-cvss-98-as-anthropic-ai-demonstrates-root-access-in-53-minutes-2dca</guid>
      <description>&lt;p&gt;CVE-2026-98432, a CVSS 9.8 vulnerability in Linux kernel TCP code, has been confirmed, with an unreleased Anthropic AI model demonstrating unauthenticated root access in 53 minutes. Ubuntu and RHEL patches remained unavailable as of October 30.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; CVE-2026-98432, a CVSS 9.8 use-after-free vulnerability, was confirmed in Linux kernel TCP code, and Anthropic's AI demonstrated remote code execution as root in 53 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who is affected:&lt;/strong&gt; Linux servers using kernel 4.4 or later are affected. Services built with Go 1.24 or later enable MPTCP listeners by default and may become targets unintentionally&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to defend:&lt;/strong&gt; Debian and Oracle Linux have fixes, but Ubuntu and RHEL patches were unavailable as of October 30. Blocking TCP packets containing IP options with nftables is recommended as an interim measure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What is changing:&lt;/strong&gt; AI independently building a complete attack chain that bypasses kernel memory protections demonstrates that exploit development, not just vulnerability discovery, can now be automated&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CVE-2026-98432, a CVSS 9.8 vulnerability, has been confirmed in Linux kernel TCP code. An unreleased Anthropic AI model demonstrated unauthenticated root access in 53 minutes. Ubuntu and RHEL patches remained unavailable as of October 30.&lt;/p&gt;

&lt;h2&gt;
  
  
  CVSS 9.8: a flaw at the heart of TCP
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;CVSS 9.8 use-after-free vulnerability&lt;/strong&gt; has been confirmed in the Linux kernel's IPv4 TCP connection handling. Its identifier is CVE-2026-98432. NVD &lt;a href="https://nvd.nist.gov/vuln/detail/cve-2026-98432" rel="noopener noreferrer"&gt;published&lt;/a&gt; the CVE record on October 15, local time, and both kernel.org and cve.org assess its vector as AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H: network-accessible, low attack complexity, no privileges required, and no user interaction. Confidentiality, integrity, and availability impacts are all high.&lt;/p&gt;

&lt;p&gt;The core issue is a race condition during TCP connection establishment.&lt;/p&gt;

&lt;p&gt;When the TCP three-way handshake completes, the kernel transfers ownership of IP options associated with the incoming connection request to a new socket, the communication endpoint. However, it moves only the pointer, the memory address, rather than copying the option data. If another CPU core simultaneously handles a retransmitted SYN packet for the same request, it reads memory already transferred to the new socket and freed at its original location. This produces a memory safety flaw known as use-after-free.&lt;/p&gt;

&lt;p&gt;I confirmed that the &lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e3f33b0a1d89d738e2b913dab519226eaf76e15b" rel="noopener noreferrer"&gt;kernel patch&lt;/a&gt; was written by Google's Eric Dumazet after a report from Anthropic's Xinyang Ge, committed on October 1 and merged on October 5, local time. The two-line change replaces &lt;code&gt;kfree()&lt;/code&gt; with &lt;code&gt;kfree_rcu()&lt;/code&gt;, delaying memory release until other CPUs finish reading the options under RCU (Read-Copy-Update), the kernel mechanism that waits for readers to finish before freeing data.&lt;/p&gt;

&lt;p&gt;The vulnerability affects all Linux kernel versions from 4.4, released in 2016, onward. Equivalent IPv6 code copies the options, so only IPv4 is affected.&lt;/p&gt;

&lt;h2&gt;
  
  
  An AI-written exploit in 53 minutes
&lt;/h2&gt;

&lt;p&gt;On October 27, local time, Anthropic &lt;a href="https://www.anthropic.com/research/discovering-vulnerabilities-with-claude" rel="noopener noreferrer"&gt;published&lt;/a&gt; findings from using an unreleased internal research model to discover and demonstrate vulnerabilities in major software. The CVE-2026-98432 exploit was reported as &lt;strong&gt;one of five demonstrations&lt;/strong&gt;, alongside attack chains targeting Chrome, Safari, the Android lock screen, and Windows.&lt;/p&gt;

&lt;p&gt;According to Anthropic, after an initial prompt, the Claude model independently built an exploit achieving unauthenticated command execution as root, without user interaction, on a Linux server running an MPTCP (Multipath TCP) listener. MPTCP allows one TCP connection to use multiple network paths simultaneously.&lt;/p&gt;

&lt;p&gt;The attack has two stages.&lt;/p&gt;

&lt;p&gt;The first exploits the race condition to bypass KASLR, Kernel Address Space Layout Randomization, which randomizes kernel code and function locations to prevent attackers from predicting them. By making the kernel read an attacker-controlled length field, it causes more bytes than intended to be returned. If the response contains kernel pointers, the kernel memory layout becomes known. This stage took &lt;strong&gt;48 minutes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The second uses the same use-after-free to overflow a buffer and overwrite a callback pointer, the address of the next function the kernel will invoke, with the address of an attack payload previously placed in kernel memory. When the kernel calls that pointer, the attacker's specified shell command executes as root. This stage took &lt;strong&gt;another five minutes&lt;/strong&gt;, achieving remote root access in &lt;strong&gt;53 minutes&lt;/strong&gt; total.&lt;/p&gt;

&lt;p&gt;The race has a useful property for attackers: losing it causes only one handshake to fail, without crashing the system. Attackers can retry until they succeed.&lt;/p&gt;

&lt;p&gt;Anthropic has not released the exploit code, tested kernel version, or test environment configuration. The discoveries were reported to vendors under Anthropic's coordinated disclosure policy, which gives developers 90 days for fixes and another 45 days before detailed publication.&lt;/p&gt;

&lt;h2&gt;
  
  
  MPTCP may be running without administrators realizing
&lt;/h2&gt;

&lt;p&gt;Anthropic demonstrated root-level remote code execution only on a server running an MPTCP listener. The same attack has not yet been demonstrated on servers without such listeners.&lt;/p&gt;

&lt;p&gt;However, administrators cannot necessarily assume MPTCP listeners are absent from their servers.&lt;/p&gt;

&lt;p&gt;Since Go 1.24, TCP listeners &lt;strong&gt;enable MPTCP by default&lt;/strong&gt; when the kernel supports it. Network services written in Go may therefore start MPTCP listeners without administrators realizing.&lt;/p&gt;

&lt;p&gt;In an October 29 statement, local time, the Go Security Team described disabling it at runtime with &lt;code&gt;GODEBUG=multipathtcp=0&lt;/code&gt;, or at build time through the &lt;code&gt;go.mod&lt;/code&gt; file by adding &lt;code&gt;godebug multipathtcp=0&lt;/code&gt;. Code calling &lt;code&gt;SetMultipathTCP&lt;/code&gt; overrides either setting, however.&lt;/p&gt;

&lt;p&gt;The Go Security Team also called per-program MPTCP disabling a fragile mitigation. A single remaining MPTCP listener leaves the system vulnerable, and &lt;strong&gt;because the underlying bug is not specific to MPTCP, systems without MPTCP listeners may also be vulnerable to similar attacks&lt;/strong&gt;. It said upgrading to a patched kernel is the best defense.&lt;/p&gt;

&lt;p&gt;The same problem can also arise with TCP request socket migration, when &lt;code&gt;net.ipv4.tcp_migrate_req&lt;/code&gt; is enabled or a &lt;code&gt;BPF_SK_REUSEPORT_SELECT_OR_MIGRATE&lt;/code&gt; program is used.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/linux-kernel-tcp-vulnerability-cvsss-9-8-anthropic-ai/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Patch status and interim defenses
&lt;/h2&gt;

&lt;p&gt;The vulnerability is fixed upstream and backported to all maintained stable kernel branches. Distribution availability varies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debian&lt;/strong&gt; responded quickly. Its security tracker lists fixes in kernel package 6.1.190-1 for Debian 12 (Bookworm) and 6.12.113-1 for Debian 13 (Trixie). Fixed packages are also available in testing and unstable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt; had no fix available as of October 30. Canonical's tracker lists 22.04 LTS, 24.04 LTS, 26.04 LTS, and 26.10 as vulnerable, with kernel fixes in progress.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;RHEL&lt;/strong&gt;, Red Hat initially rated the issue 5.9 (Moderate), but the situation has changed. On October 30, local time, Red Hat published security bulletin &lt;a href="https://access.redhat.com/security/vulnerabilities/RHSB-2026-016" rel="noopener noreferrer"&gt;RHSB-2026-016&lt;/a&gt;, &lt;strong&gt;rating the impact Critical and working to expedite fixes&lt;/strong&gt;. Its CVE page now displays CVSS 9.8. RHEL 8, 9, 10, and OpenShift Container Platform are affected. RHEL 7 lacks the vulnerable code and is unaffected.&lt;/p&gt;

&lt;p&gt;For context on these changing ratings, Red Hat's CVE page initially showed 5.9 (Moderate), its machine-readable advisory showed 8.1 (Important), and its bug tracker changed from medium to high on October 29. The October 30 bulletin raised the rating to Critical.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;Rocky Linux&lt;/strong&gt;, support provider CIQ confirmed impacts on versions 8, 9, and 10 and shared an interim firewall mitigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oracle Linux&lt;/strong&gt;, &lt;strong&gt;Amazon Linux&lt;/strong&gt;, and &lt;strong&gt;SUSE&lt;/strong&gt; have released fixes for some affected kernel versions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interim defenses
&lt;/h3&gt;

&lt;p&gt;For environments awaiting patches, Red Hat's bulletin provides a specific nftables rule. It drops incoming IPv4 TCP packets whose IP header length exceeds the standard five, meaning options are present, before they reach the vulnerable TCP processing code.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;table inet cve_2026_98432 { chain input { type filter hook input priority -310; policy accept; ip protocol tcp ip hdrlength &amp;gt; 5 counter drop } }&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Red Hat says effects on normal application traffic are generally not expected, while advising administrators to review their own traffic and requirements before applying it.&lt;/p&gt;

&lt;p&gt;Importantly, &lt;strong&gt;disabling MPTCP alone is insufficient&lt;/strong&gt;. Ordinary TCP traffic can trigger the underlying vulnerability, so turning MPTCP off does not provide a defense by itself.&lt;/p&gt;

&lt;p&gt;macOS uses Apple's XNU kernel and is unaffected.&lt;/p&gt;

&lt;p&gt;As of October 30, no reports of CVE-2026-98432 exploitation in real-world attacks had been confirmed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The discoverers of vulnerabilities have changed
&lt;/h2&gt;

&lt;p&gt;Anthropic reported five attack chains. Chrome findings received &lt;strong&gt;62 CVEs&lt;/strong&gt;, all critical or high, including 13 sandbox escapes. The Safari chain escaped the sandbox and disabled the same-origin policy. The work also included an Android lock screen bypass and remote denial of service against Windows' HTTP/3 implementation. Anthropic says the Claude model independently discovered these issues and built working exploits after an initial prompt.&lt;/p&gt;

&lt;p&gt;AI's &lt;a href="https://joho-todai.com/ai-discovers-linux-vulnerabilities-network-fixes-endless-chaos/" rel="noopener noreferrer"&gt;large-scale discovery of software vulnerabilities (in Japanese)&lt;/a&gt; is already changing everyday Linux kernel development. Reports have reached five to 10 per day, &lt;a href="https://joho-todai.com/linux-kernel-deprecates-af-alg-interface/" rel="noopener noreferrer"&gt;deprecation of the AF_ALG interface (in Japanese)&lt;/a&gt; has been decided to reduce the kernel's attack surface, and a &lt;a href="https://joho-todai.com/linux-kernel-kill-switch-unpatched-vulnerabilities/" rel="noopener noreferrer"&gt;killswitch mechanism for temporary protection while patches remain unapplied (in Japanese)&lt;/a&gt; has been proposed.&lt;/p&gt;

&lt;p&gt;What differs this time is that AI did not stop at discovery: it assembled a complete attack chain bypassing kernel memory protections and obtaining root privileges. Both the 48-minute persistence in waiting for a successful race and the second-stage design using KASLR information to hijack control flow were traditionally considered skills held by only a few specialist teams.&lt;/p&gt;

&lt;p&gt;The patch merged on October 5 and has reached upstream kernels. For Ubuntu and RHEL users, however, the gap before patched kernel packages arrive continues.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/linux-kernel-tcp-vulnerability-cvsss-9-8-anthropic-ai/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/linux-kernel-tcp-vulnerability-cvsss-9-8-anthropic-ai/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>ai</category>
    </item>
    <item>
      <title>Linux 7.4 Speeds Up FAT32 fallocate by Up to 265x by Removing a Six-Line While Loop</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Fri, 30 Oct 2026 15:01:50 +0000</pubDate>
      <link>https://dev.to/joho_todai/linux-74-speeds-up-fat32-fallocate-by-up-to-265x-by-removing-a-six-line-while-loop-57ch</link>
      <guid>https://dev.to/joho_todai/linux-74-speeds-up-fat32-fallocate-by-up-to-265x-by-removing-a-six-line-while-loop-57ch</guid>
      <description>&lt;p&gt;Linux 7.4 brings an orders-of-magnitude speedup to FAT32, still widely used on USB drives and SD cards, making disk space preallocation up to 265 times faster. At the heart of the change is the removal of a while loop—but why can changing just a few lines of code make such a difference?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; The FAT driver's fallocate implementation replaces a while loop that handled one cluster at a time with bulk allocation, adding four lines and deleting six in fs/fat/file.c&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why 265x:&lt;/strong&gt; On synchronous mounts, the FAT table was written to disk after every cluster allocation. Bulk allocation drastically reduces these sync operations, cutting 92.489 seconds to 0.348 seconds with 4,096-byte clusters and sixteen 16MiB files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope:&lt;/strong&gt; The improvement is limited to fallocate's FALLOC_FL_KEEP_SIZE path and does not directly affect ordinary file copying. Preallocation on USB drives and SD cards, and synchronous mounts in embedded environments, are the main beneficiaries&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Allocating one cluster at a time
&lt;/h2&gt;

&lt;p&gt;Linux provides &lt;code&gt;fallocate&lt;/code&gt;, a system call that preallocates disk space for a file. With the &lt;code&gt;FALLOC_FL_KEEP_SIZE&lt;/code&gt; flag, it reserves disk space without changing the file's reported size. This reserves space ahead of later writes and is used for tasks such as database and virtual disk image creation.&lt;/p&gt;

&lt;p&gt;The problem was that Linux's FAT driver repeated this operation &lt;strong&gt;one cluster at a time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A cluster is the smallest unit FAT32 uses to manage disk space, with its size set during formatting (from 512 bytes to several tens of kilobytes). Allocating 256MiB for a file requires about 524,000 clusters when each cluster is 512 bytes. The previous implementation handled these clusters in a &lt;code&gt;while&lt;/code&gt; loop that allocated them individually.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://lore.kernel.org/all/20261012171106.146243-4-matheus.aalmeida@inf.ufrgs.br/" rel="noopener noreferrer"&gt;patch posted&lt;/a&gt; on October 12, local time, by Matheus Alves de Almeida of Brazil's Federal University of Rio Grande do Sul removes this loop.&lt;/p&gt;

&lt;p&gt;The core change &lt;strong&gt;adds four lines and deletes six&lt;/strong&gt; in fs/fat/file.c. The &lt;code&gt;while (nr_cluster-- &amp;gt; 0)&lt;/code&gt; loop called &lt;code&gt;fat_add_clusters(inode, 1)&lt;/code&gt; individually; it is replaced with a single call to &lt;code&gt;fat_add_clusters(inode, nr_cluster)&lt;/code&gt;, passing the required number as an argument. The full series consists of three patches; the first two add support for multiple clusters to &lt;code&gt;fat_add_clusters()&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why synchronous mounts get a 265x speedup
&lt;/h2&gt;

&lt;p&gt;I confirmed that the patch's commit message includes detailed benchmarks measured on QEMU/KVM (virtio-blk, cache=none).&lt;/p&gt;

&lt;p&gt;The largest improvement came when using &lt;code&gt;fallocate&lt;/code&gt; on sixteen 16MiB files with 4,096-byte clusters on a &lt;strong&gt;synchronous mount&lt;/strong&gt;. Processing time fell &lt;strong&gt;from 92.489 seconds to 0.348 seconds&lt;/strong&gt;, a &lt;strong&gt;265.4x speedup&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The reason improvements jump by orders of magnitude on synchronous mounts (the &lt;code&gt;-o sync&lt;/code&gt; option) is clear: every cluster allocation caused a synchronous write of FAT table updates to disk. It would be surprising if more than 65,000 synchronous writes took the same time as a single synchronous write. The commit message succinctly explains the structure.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The improvement is especially large on synchronous mounts. The new code can batch FAT updates, eliminating the need to sync after each cluster allocation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Asynchronous mounts also improve. Allocating 256MiB with 512-byte clusters was &lt;strong&gt;13.2x faster&lt;/strong&gt; (2.328 seconds→0.175 seconds), and even the case with the smallest improvement (128 files × 16KiB, asynchronous) recorded a &lt;strong&gt;5.3x speedup&lt;/strong&gt;. Reducing the number of metadata operations helps even without synchronous writes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/linux-74-fat32-fallocate-performance-boost/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAT32 is still in service
&lt;/h2&gt;

&lt;p&gt;Seeing 265x and expecting FAT32 file copies to become 265 times faster would be premature. This improvement applies only to &lt;code&gt;fallocate&lt;/code&gt; and its &lt;code&gt;FALLOC_FL_KEEP_SIZE&lt;/code&gt; path. Ordinary file copies and writes (&lt;code&gt;cp&lt;/code&gt; and &lt;code&gt;dd&lt;/code&gt;) follow different paths and do not benefit directly.&lt;/p&gt;

&lt;p&gt;Who benefits, then?&lt;/p&gt;

&lt;p&gt;FAT32 is used on USB drives, SD cards, digital camera media, and the EFI system partitions of all UEFI machines. As a common-denominator filesystem readable and writable by Windows, macOS, and Linux alike, it remains in service in 2026. &lt;code&gt;fallocate&lt;/code&gt; is a system call used internally for database preallocation, virtual disk image creation, and some backup tools. Embedded environments writing to slow flash media on synchronous mounts stand to benefit substantially.&lt;/p&gt;

&lt;p&gt;FAT filesystem maintainer OGAWA Hirofumi added an &lt;a href="https://lore.kernel.org/all/87cxtdn3i9.fsf@mail.parknet.co.jp/" rel="noopener noreferrer"&gt;Acked-by&lt;/a&gt; to all three patches. The patches were merged for Linux 7.4-rc1 on October 25, local time, through Andrew Morton's &lt;a href="https://lore.kernel.org/lkml/20261025202725.34c617497b6d9a2be352cf4f@linux-foundation.org/" rel="noopener noreferrer"&gt;non-MM pull request&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The pull request contains 134 patches in total. Beyond the fallocate improvement, the FAT changes alone include fixes for overflow in data region calculations on 32-bit systems and for rolling back entries when file creation fails.&lt;/p&gt;

&lt;p&gt;Removing just a few lines of a while loop cut processing time from a minute and a half to 0.3 seconds. An inefficiency untouched for years had kept spinning inside the code all along.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/linux-74-fat32-fallocate-performance-boost/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/linux-74-fat32-fallocate-performance-boost/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>So-net Breach Exposes More Than 2.58 Million Personal Information Records, Also Affecting Docomo Hikari</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Thu, 29 Oct 2026 15:01:26 +0000</pubDate>
      <link>https://dev.to/joho_todai/so-net-breach-exposes-more-than-258-million-personal-information-records-also-affecting-docomo-14dh</link>
      <guid>https://dev.to/joho_todai/so-net-breach-exposes-more-than-258-million-personal-information-records-also-affecting-docomo-14dh</guid>
      <description>&lt;p&gt;Unauthorized external access to the membership database of Sony Group internet service provider So-net exposed more than 2.58 million personal information records belonging to current and former members. The affected data also includes 440,000 records for Docomo Hikari users whose service it operated under contract.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; Unauthorized access to So-net's membership database exposed more than 2.58 million personal information records, including 54,401 email passwords.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who is affected:&lt;/strong&gt; Alongside current and former So-net members, 443,495 records for Docomo Hikari plala (S Course) users were exposed. Those who canceled by the end of February 2026 are excluded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What to do:&lt;/strong&gt; Affected email service users' passwords have been forcibly reset and need to be set again through So-net My Page. Do not open links in suspicious emails impersonating So-net or Docomo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it is serious:&lt;/strong&gt; Attacks on communications infrastructure at GMO, KDDI, and IDC Frontier have continued in 2026, prompting an emergency ministerial meeting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Four days between intrusion and detection
&lt;/h2&gt;

&lt;p&gt;The unauthorized access occurred on October 19. Sony Network Communications detected the anomaly four days later, on October 23, immediately shutting down the affected server and blocking communication with the source of the intrusion. Its investigation confirmed the personal information leak the following day, October 24. The company &lt;a href="https://www.sonynetwork.co.jp/corporation/release/2026/v5e5u00000000zwj-att/20261027.pdf" rel="noopener noreferrer"&gt;disclosed it&lt;/a&gt; on October 27.&lt;/p&gt;

&lt;p&gt;The cause has been described only as unauthorized access by a third party. The entry path and techniques remain under investigation. The company has reported the incident to Japan's Personal Information Protection Commission.&lt;/p&gt;

&lt;h2&gt;
  
  
  What information was exposed?
&lt;/h2&gt;

&lt;p&gt;The number of exposed So-net membership records is &lt;strong&gt;2,141,986&lt;/strong&gt;: 1,869,771 current members and 272,215 former members who canceled from March 2026 onward. The information includes names, telephone numbers, email addresses, user IDs, dates of birth, gender, and internet connection IDs. Membership account passwords were not exposed.&lt;/p&gt;

&lt;p&gt;A serious aspect is that &lt;strong&gt;email addresses and their passwords were exposed&lt;/strong&gt; for some email services. Four services account for 54,401 records: Email Service (G), 24,655; A-Box additional mailboxes, 17,672; So-net VAIO Mail, 7,005; and PostPet Mail Account Service, 5,069. Exposed email passwords can enable impersonation emails or account takeovers on other services where the same password is reused.&lt;/p&gt;

&lt;p&gt;I confirmed that Sony Network Communications forcibly reset affected email service passwords on October 27. Users need to set new passwords through &lt;a href="https://www.so-net.ne.jp/mypage/" rel="noopener noreferrer"&gt;So-net My Page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In addition, 16 bank account records, including financial institution, branch, account number, and account holder, and seven member notification records used for password resets were exposed. Credit card information was not included. The company says it has not confirmed leaks from other services such as NURO.&lt;/p&gt;

&lt;p&gt;People who canceled by the end of February 2026 are outside the affected group.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docomo Hikari also affected, alongside phishing attempts
&lt;/h2&gt;

&lt;p&gt;NTT Docomo &lt;a href="https://www.docomo.ne.jp/info/notice/page/261027_05_m.html" rel="noopener noreferrer"&gt;announced&lt;/a&gt; the same day that &lt;strong&gt;443,495 records&lt;/strong&gt; for Docomo Hikari's plala (S Course) service had leaked. The information was stored in the same database because service operation was outsourced to Sony Network Communications.&lt;/p&gt;

&lt;p&gt;Affected customers include active users and those who canceled within the previous six months. The exposed fields are personal information similar to So-net membership data, excluding passwords, credit card information, and bank account details. NTT Docomo says information for customers outside plala (S Course), including plala (Docomo Hikari) and Plala Hikari Mate with FLET'S, was not leaked.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/so-net-data-breach-2-58-million-docomo-hikari/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Docomo also &lt;a href="https://www.docomo.ne.jp/info/notice/page/261027_00.html" rel="noopener noreferrer"&gt;warned&lt;/a&gt; the same day about phishing emails impersonating d POINT CLUB. Claiming recipients had won a USJ promotion, they directed users to a fake ticket-issuing site and requested personal information. Docomo explicitly said it was not running such a promotion. Emails posing as official messages immediately after a leak can use exposed personal information to appear credible. Not opening links in unfamiliar emails is the surest defense.&lt;/p&gt;

&lt;p&gt;A dedicated inquiry line is available for Docomo Hikari plala (S Course) users at 0120-035-700, open 10:00 a.m.–7:00 p.m., including weekends and holidays.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attacks on Japan's communications infrastructure continue
&lt;/h2&gt;

&lt;p&gt;Cyberattacks on Japanese communications and IT infrastructure have continued at an unusual pace in 2026. GMO Internet Group's &lt;a href="https://joho-todai.com/gmo-desktop-cloud-attack-domain-suspended/" rel="noopener noreferrer"&gt;Onamae.com Desktop Cloud was attacked (in Japanese)&lt;/a&gt;, KDDI reportedly suffered a leak affecting around 12 million people, and IDC Frontier was hit by ransomware. In 2025, an intrusion into NTT systems exposed data on 18,000 corporate customers.&lt;/p&gt;

&lt;p&gt;As of October 27, no misuse of the data in this leak had been confirmed. However, the combination of names, phone numbers, dates of birth, and email addresses provides ample material for phishing and bypassing identity checks.&lt;/p&gt;

&lt;p&gt;In response to the situation's severity, Prime Minister Sanae Takaichi &lt;a href="https://www.kantei.go.jp/jp/105/actions/202610/26kaigi_cyber.html" rel="noopener noreferrer"&gt;held a meeting of relevant ministers on cybersecurity&lt;/a&gt; on October 26. She said repeated cyberattacks against Japanese companies and other organizations had caused numerous major information leaks, describing the situation as serious and requiring urgent reinforcement of countermeasures. She cited simulated attack testing using advanced AI and a cyberattack monitoring network covering small and midsize businesses. That the government has reached the point of convening an emergency meeting itself reflects the current state of Japan's cyber defenses.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/so-net-data-breach-2-58-million-docomo-hikari/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/so-net-data-breach-2-58-million-docomo-hikari/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Microsoft Removes Seven eMudhra G3 Certificates From Windows Trust Lists, Releases Out-of-Band KB5134133</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Wed, 28 Oct 2026 15:00:59 +0000</pubDate>
      <link>https://dev.to/joho_todai/microsoft-removes-seven-emudhra-g3-certificates-from-windows-trust-lists-releases-out-of-band-1idg</link>
      <guid>https://dev.to/joho_todai/microsoft-removes-seven-emudhra-g3-certificates-from-windows-trust-lists-releases-out-of-band-1idg</guid>
      <description>&lt;p&gt;Following the compromise of eMudhra certificate authority private keys, Microsoft released an out-of-band update removing seven eMudhra G3 root certificates from Windows and Edge trust lists. Isolated environments require manual installation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; Six eMudhra G3 root certificates and one Sectigo cross-signature were removed from Windows and Edge trust lists&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Blocking individual intermediate CAs alone leaves a path for software without revocation checks to accept compromised certificates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For isolated-environment administrators:&lt;/strong&gt; Devices unable to receive automatic CTL updates need manual installation of KB5134133 or KB5134125 and an inventory of certificates depending on the seven removed entries&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  eMudhra G3 root certificates removed from trust lists
&lt;/h2&gt;

&lt;p&gt;On October 26 local time, Microsoft &lt;a href="https://www.microsoft.com/en-us/msrc/blog/2026/10/microsoft-response-to-compromised-emudhra-certificate-authority-keys" rel="noopener noreferrer"&gt;released&lt;/a&gt; an out-of-band (OOB) cumulative Windows update. It &lt;strong&gt;removes seven certificates from Windows trust lists&lt;/strong&gt;: six eMudhra G3 root certificates and one AAA Certificate Services cross-signature issued by Sectigo. The same seven were removed from Edge's trust list on October 27.&lt;/p&gt;

&lt;p&gt;Joho no Todai confirmed that the Microsoft Security Response Center (MSRC) blog documents the response and lists the removed certificates.&lt;/p&gt;

&lt;p&gt;On October 20, Microsoft had already blocked eight problematic intermediate CAs by adding them to the Windows Disallowed Certificate List. It also distributed CRLSet updates, browser revocation-information lists, for Edge and WebView2, the component that embeds Edge's rendering engine in other applications. These blocks applied without manual browser updates.&lt;/p&gt;

&lt;p&gt;The OOB update goes further. Rather than individually blocking intermediate CAs, it &lt;strong&gt;removes the root certificates linking to them from the trust list itself&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Removing root certificates from a trust list differs from revoking the intermediate CAs where problems were found. This is a broader trust decision than blocking compromised intermediate keys. Organizations with compatibility requirements can also configure trust locally based on their own security assessments and policies.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Microsoft explains that software that does not reliably check revocation may still consider certificates from blocked intermediate CAs valid if their roots remain trusted. Removing those roots aims to close that path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Private keys recoverable from 256 possible numbers
&lt;/h2&gt;

&lt;p&gt;The incident began on October 17 local time, when security researcher Wayne discovered a critical flaw in the private keys of eight eMudhra intermediate CAs while scanning public certificate data. All eight had been generated in April 2025 using the P-384 elliptic curve, but their private-key values were integers below 256.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2083449" rel="noopener noreferrer"&gt;Mozilla's incident report&lt;/a&gt;, P-384 private keys should be randomly selected from an enormous range of integers. A value below 256 means all but the final byte are zero. Trying only 256 numbers suffices to recover a key; Mozilla cryptography engineer Dennis Jackson also reported independently recovering the keys.&lt;/p&gt;

&lt;p&gt;Six intermediate CAs were for TLS, which encrypts communications, and two for code signing, which authenticates software publishers. Recovered TLS keys could enable impersonation of legitimate websites and interception of encrypted traffic. Code-signing keys could put trusted-publisher signatures on malware.&lt;/p&gt;

&lt;p&gt;In its response to Mozilla, eMudhra said a script error during April 2025 key generation produced weak keys separately, which were mistakenly selected because their labels resembled those of legitimate keys. On October 22, it &lt;a href="https://joho-todai.com/emudhra-ssl-tls-certificate-withdrawal/" rel="noopener noreferrer"&gt;announced its withdrawal from the global SSL/TLS certificate business (in Japanese)&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who needs KB5134133 and what administrators should do
&lt;/h2&gt;

&lt;p&gt;The OOB update targets devices unable to receive automatic certificate trust list (CTL) updates: disconnected devices in isolated environments, devices unable to access Microsoft's certificate update service, and devices with automatic CTL updates disabled.&lt;/p&gt;

&lt;p&gt;In ordinary environments with automatic CTL updates enabled, the root removals have already been delivered automatically, and the additional OOB update is unnecessary.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://support.microsoft.com/en-us/servicing/os/windows-11/2026/10/kb5134133-windows-11-24h2-25h2-26h2-update" rel="noopener noreferrer"&gt;KB5134133&lt;/a&gt; covers Windows 11 24H2/25H2/26H2, while &lt;a href="https://support.microsoft.com/en-us/servicing/os/windows-10/2026/10/kb5134125-windows-10-21h2-22h2-update" rel="noopener noreferrer"&gt;KB5134125&lt;/a&gt; covers Windows 10 21H2/22H2. Both are available from the Microsoft Update Catalog.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/microsoft-removes-emodhra-g3-root-certificates-windows/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Microsoft asks administrators to identify certificates depending on the seven removed roots and arrange replacement certificates or alternative trust paths. Restoring local trust for compatibility requires assessing the risk that software without revocation checks could accept certificates from compromised intermediate CAs through that path.&lt;/p&gt;

&lt;p&gt;Microsoft is separately evaluating the remaining eMudhra roots and says further trust changes may follow as affected users migrate. The eMudhra &lt;a href="https://joho-todai.com/emudhraroot-certificate-revoked/" rel="noopener noreferrer"&gt;key compromise (in Japanese)&lt;/a&gt; also affects certificate stores in language runtimes such as Go, Python, Node.js, and Electron, beyond browsers and operating systems, with projects responding individually. An &lt;a href="https://emudhra.we-have-a-problem.com/" rel="noopener noreferrer"&gt;incident tracking site&lt;/a&gt; published by a Mozilla cryptography engineer tracks responses by software product.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/microsoft-removes-emodhra-g3-root-certificates-windows/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/microsoft-removes-emodhra-g3-root-certificates-windows/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>windows</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>npm Worm Infiltrates 42 Real GitHub Repositories: Roughly 13 MB of Obfuscated Code Evades Search and Inspection</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Tue, 27 Oct 2026 15:00:32 +0000</pubDate>
      <link>https://dev.to/joho_todai/npm-worm-infiltrates-42-real-github-repositories-roughly-13-mb-of-obfuscated-code-evades-search-2m6l</link>
      <guid>https://dev.to/joho_todai/npm-worm-infiltrates-42-real-github-repositories-roughly-13-mb-of-obfuscated-code-evades-search-2m6l</guid>
      <description>&lt;p&gt;JFrog found that testmetest, a worm that steals credentials through npm packages, had embedded malicious code in 42 real third-party GitHub repositories. The repositories span 11 legitimate owners and include organization repositories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; JFrog found that the testmetest npm worm had embedded roughly 13 MB of obfuscated code in 42 real GitHub repositories belonging to 11 owners.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it went undetected:&lt;/strong&gt; Attack files exceeded GitHub code search and Contents API indexing limits, making their very existence invisible to ordinary inspection methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What makes it dangerous:&lt;/strong&gt; Configuration files for Claude Code, Gemini CLI, Cursor, and VS Code launch attack code simply when a repository is opened. Destructive logic also attempts to delete the home directory when token revocation is detected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspection scope:&lt;/strong&gt; Repository checks need to reach large Git blobs and development tools' automatic execution settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A 13 MB file outside the search index
&lt;/h2&gt;

&lt;p&gt;According to &lt;a href="https://research.jfrog.com/post/beyond-testmetest-42-hijacked-github-repos/" rel="noopener noreferrer"&gt;JFrog's investigation&lt;/a&gt;, compromised repositories primarily contained a JavaScript file named &lt;code&gt;.github/init.js&lt;/code&gt;. Recovered files were &lt;strong&gt;roughly 12.4–13.1 MB&lt;/strong&gt;. GitHub code search does not index files this large, and the ordinary Contents API could not retrieve their contents either.&lt;/p&gt;

&lt;p&gt;Even when configuration files contained suspicious references, the large target files could appear empty. Researchers traversed each repository's Git tree directly, retrieved the relevant Git blobs, and compared hashes. Obfuscated code recovered from 42 repositories fell into &lt;strong&gt;10 wrapper variants&lt;/strong&gt;, but all contained the same roughly 4.07-million-character loader, decoding to an identical 2 MB payload. File-size differences simply reflected the number of digits in character codes produced by nine ROT keys—1, 2, 3, 4, 14, 17, 18, 20, and 22. Decoded functionality was identical.&lt;/p&gt;

&lt;p&gt;I confirmed that JFrog lists blob-group sizes ranging from 12,964,907 to 13,730,579 bytes. All 42 contained executable code; none was an empty placeholder.&lt;/p&gt;

&lt;p&gt;Detection based only on filenames or surface strings can miss these variants. GitHub search and APIs are working normally. The attack exploits the search size limits themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  From packages to repositories: a credential-driven cycle
&lt;/h2&gt;

&lt;p&gt;The attack has several components: malicious npm packages, execution mechanisms embedded in GitHub repositories, and concealed package publishing through GitHub Actions.&lt;/p&gt;

&lt;p&gt;On npm, malicious programs launch during installation. Command expansion is embedded in the sources field of &lt;code&gt;binding.gyp&lt;/code&gt;, while ordinary &lt;code&gt;preinstall&lt;/code&gt; and &lt;code&gt;postinstall&lt;/code&gt; entries remain empty. Because npm invokes the node-gyp C/C++ build system merely when &lt;code&gt;binding.gyp&lt;/code&gt; exists, code runs even with nothing in the package's &lt;code&gt;scripts&lt;/code&gt; section.&lt;/p&gt;

&lt;p&gt;Stolen credentials enable writes to other repositories and publication of malicious packages. The attacker-controlled &lt;code&gt;CementBeetleSteeple&lt;/code&gt; account had 17 repositories, with short-lived &lt;code&gt;chore/ci-&amp;lt;hex&amp;gt;&lt;/code&gt; branches containing &lt;code&gt;ci.js&lt;/code&gt; and Actions workflows. JFrog recovered 68 branch tips and 16 variants of obfuscated publishing code.&lt;/p&gt;

&lt;p&gt;The decoded code checks whether the running workflow and repository match specified conditions, then collects credentials and examines permissions needed for npm Trusted Publishing. Specifically, it includes logic obtaining npm publishing authorization through GitHub Actions OIDC authentication, an OpenID Connect-based identity mechanism. Designed to authenticate package provenance, this mechanism can also become an attack foothold in a compromised environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development tool settings become execution entry points
&lt;/h2&gt;

&lt;p&gt;Repositories also contained configuration files associated with Claude Code, Gemini CLI, Cursor, and Visual Studio Code: &lt;code&gt;.claude/settings.json&lt;/code&gt;, &lt;code&gt;.gemini/settings.json&lt;/code&gt;, &lt;code&gt;.cursor/mcp.json&lt;/code&gt;, &lt;code&gt;.cursor/rules/setup.mdc&lt;/code&gt;, and &lt;code&gt;.vscode/tasks.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;These exploit development tools' automatic configuration loading when opening a repository folder. For Claude Code, a SessionStart hook specified running &lt;code&gt;.github/init.js&lt;/code&gt; with node or bun. Tool-specific automatic execution settings therefore also belong within repository trust checks. Focusing only on compilation or npm installation misses this path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designed to evade detection
&lt;/h2&gt;

&lt;p&gt;Package distribution has evolved as well. Initially observed packages launched JavaScript loaders through command expansion in &lt;code&gt;binding.gyp&lt;/code&gt;. Some later packages omit the JavaScript body itself, instead combining a &lt;strong&gt;native Node.js addon&lt;/strong&gt;, a compiled binary, with encrypted data disguised as a cache file (&lt;code&gt;.napi_cache&lt;/code&gt;). The addon XOR-decodes the data with 0x96, writes a temporary file, and executes it.&lt;/p&gt;

&lt;p&gt;Before execution, environment checks detect CI variables for GitHub Actions or GitLab CI, Docker or container traces, small virtual machines with no more than 1.5 GB of memory or one CPU core, and attached debuggers. Any match causes a silent exit. Windows versions additionally detect network and process analysis tools such as Wireshark and Process Monitor. Leaving no installation errors and remaining inactive in automated scanners' environments makes package scanning easier to evade.&lt;/p&gt;

&lt;p&gt;JFrog describes the practical effect as execution on developer PCs and ordinary servers, but dormancy inside CI runners, containers, and sandboxes used by automated scanners.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/npm-worm-infiltrates-42-github-repositories/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Revoking stolen tokens can trigger destruction
&lt;/h2&gt;

&lt;p&gt;On development endpoints suspected of infection, something must precede credential revocation. This attack family includes destructive logic checking stolen GitHub tokens every 45 seconds and attempting to delete the home directory after a 401 authentication error or 403 access denial. &lt;a href="https://safedep.io/testmetest-npm-worm-miasma-variant" rel="noopener noreferrer"&gt;SafeDep's October 22 investigation&lt;/a&gt; reported this behavior, which continues monitoring for 48 hours.&lt;/p&gt;

&lt;p&gt;The response order therefore requires first removing persistent malware, &lt;code&gt;net-health-checker&lt;/code&gt; and &lt;code&gt;pkg-runtime&lt;/code&gt;, then revoking credentials. Endpoint isolation, persistence discovery and removal, credential reissuance from a trusted environment, and repository and workflow audits must be combined.&lt;/p&gt;

&lt;h2&gt;
  
  
  A connection to cPanel scanning
&lt;/h2&gt;

&lt;p&gt;The compromised accounts also contained a separate attack setup called "shellpanel." It uses GitHub Actions runners to scan and attempt exploitation of CVE-2026-41940, an authentication bypass in internet-facing cPanel web-hosting management panels and WHM. &lt;a href="https://support.cpanel.net/hc/en-us/articles/40073787579671-Security-CVE-2026-41940-cPanel-WHM-WP2-Security-Update-04-28-2026" rel="noopener noreferrer"&gt;cPanel released fixes on April 28&lt;/a&gt;, and CISA added it to the Known Exploited Vulnerabilities (KEV) catalog on April 30 that year.&lt;/p&gt;

&lt;p&gt;JFrog connected the scanning infrastructure &lt;a href="https://socket.dev/blog/github-actions-abuse-powers-cpanel-and-whm-exploitation" rel="noopener noreferrer"&gt;reported by Socket in July 2026&lt;/a&gt; with this testmetest repository intrusion activity. Successful compromise of the targeted cPanel servers has not been confirmed, providing no basis for adding them to this attack's victim count.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is known—and what is not
&lt;/h2&gt;

&lt;p&gt;Before JFrog's report, SafeDep published its npm-side analysis of testmetest on October 22. At that point, SafeDep had not confirmed compromised third-party packages or victims. By investigating GitHub infrastructure, JFrog reached different findings. It attributes the gap not simply to timing, but to payload sizes exceeding practical GitHub search and API limits, preventing discovery through ordinary methods.&lt;/p&gt;

&lt;p&gt;The figure of 42 counts repositories containing malicious code. It does not establish execution in all 42 or credential theft from an equal number of users. An attacker-controlled repository accumulated encrypted data through a collection mechanism between October 22 and 24: 27 JSON files totaling roughly 375 KB. Their contents have not been decrypted, and victims have not been identified.&lt;/p&gt;

&lt;p&gt;Code similarities suggest links to the Miasma family, an npm worm reported in June 2026, but attribution to the same people or group is unconfirmed. JFrog identified shared tooling and Shai-Hulud-family payloads without concluding that the original Miasma operators were responsible. Shai-Hulud source code has been public since May 2026, so other groups may be using it.&lt;/p&gt;

&lt;p&gt;What is established is that attack code entered legitimate repositories and hid executable content beyond GitHub search visibility. Dependencies on npm, developers' GitHub credentials, CI/CD, and AI coding tools also coexist in Japanese development environments. For companies and projects, the issue is not merely whether they are among those 42 repositories, but whether their checks reach large Git blobs and development tool execution settings.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/npm-worm-infiltrates-42-github-repositories/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/npm-worm-infiltrates-42-github-repositories/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Web Pages Can Command AI Coding Agents: Over 90% Success Through the Downloads Folder</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Mon, 26 Oct 2026 15:00:03 +0000</pubDate>
      <link>https://dev.to/joho_todai/web-pages-can-command-ai-coding-agents-over-90-success-through-the-downloads-folder-34lp</link>
      <guid>https://dev.to/joho_todai/web-pages-can-command-ai-coding-agents-over-90-success-through-the-downloads-folder-34lp</guid>
      <description>&lt;p&gt;Browsers save files to Downloads without user interaction, while AI agents automatically follow instruction files. These two behaviors, neither a bug on its own, combine to let a single text file trigger malware execution, as demonstrated with Codex and Claude Code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; An AGENTS.md file in the Downloads folder was instructing an AI coding agent to install the function-color malware&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it works:&lt;/strong&gt; A structural gap that no one can patch lies at the intersection of browsers saving files to Downloads without user interaction and agents automatically following instruction files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How to prevent it:&lt;/strong&gt; Do not launch agents in Downloads; check unfamiliar instruction files and configuration changes. Instructions to disable approval prompts are themselves a sign of an attack&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The day Markdown became an executable
&lt;/h2&gt;

&lt;p&gt;Forever Security, which monitors the security of AI coding agents, detected a coding agent attempting to install the malicious npm package &lt;code&gt;function-color&lt;/code&gt; on a customer's computer and &lt;a href="https://forever.security/blog/hijacking-ai-agents-via-downloads-folder" rel="noopener noreferrer"&gt;blocked it before execution&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/FEHcJbTz16M" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;function-color&lt;/code&gt; is known malware belonging to the MALFEX campaign &lt;a href="https://checkmarx.com/zero-post/malfex-npm-malware-campaign-three-payloads-and-an-adversary-that-signs-their-work/" rel="noopener noreferrer"&gt;reported&lt;/a&gt; by Checkmarx on October 5, 2026. It is part of a supply chain attack by a single threat actor active since August 2023. The package itself contains no payload; it installs another malicious package, &lt;code&gt;function-flag&lt;/code&gt;, as a dependency.&lt;/p&gt;

&lt;p&gt;What was unusual was the source of the installation instruction. It was neither a code repository nor a dependency. The cause was &lt;strong&gt;a text file named AGENTS.md&lt;/strong&gt; in the customer's ~/Downloads folder.&lt;/p&gt;

&lt;p&gt;AGENTS.md and CLAUDE.md are project instruction files read at startup by OpenAI Codex and Claude Code, respectively. They are simply plain text describing tools to use, testing methods, and coding conventions. If the file is present in the working directory, the agent automatically reads it and follows its instructions. This is intended behavior; there is no bug here.&lt;/p&gt;

&lt;p&gt;The problem is where that text file was placed.&lt;/p&gt;

&lt;p&gt;The ~/Downloads folder is known as the only folder where web pages can save files without a click or approval. Chrome, Edge, and Firefox all save downloaded files there by default, displaying a download notification but not asking where to save them. This behavior has remained unchanged for 30 years. In the past, even if an executable landed there, it was not a problem because the OS asked for approval before running it.&lt;/p&gt;

&lt;p&gt;A text file is not an executable, so the OS guardrails do not activate. But &lt;strong&gt;for an AI agent, an instruction file effectively becomes an executable&lt;/strong&gt;. The written instructions are carried out. None of the protections applied to executable files apply to text files.&lt;/p&gt;

&lt;p&gt;The web can write files to Downloads. An agent follows instruction files in that folder. Each behavior was designed as a safe feature on its own. The problem lies where the two intersect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over 90% success: Codex configuration files become compromised
&lt;/h2&gt;

&lt;p&gt;Using an actual attack file recovered from a customer's machine, Forever Security reproduced the attack chain against OpenAI Codex in an isolated virtual machine. For safety, the tests used a harmless payload that simply opened the calculator application. &lt;strong&gt;The success rate exceeded 90%.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The recovered AGENTS.md was a long document of roughly 13 KB titled "Engineering Work Guidelines." The attack code was disguised as a routine setup step in a section near the end. Codex rejects a short instruction to "install this package." Hiding it in a long technical document let it pass that defense.&lt;/p&gt;

&lt;p&gt;When the attack against Codex succeeds, the machine-wide configuration file &lt;code&gt;~/.codex/config.toml&lt;/code&gt; is rewritten to register the attacker's "project tools" server. This configuration applies across the machine, rather than being tied to Downloads. Every subsequent Codex session on that machine loads the attacker's server, regardless of the folder it is working in. The compromise persists after leaving the folder.&lt;/p&gt;

&lt;p&gt;A different technique was used against Claude Code. A CLAUDE.md file changed the &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; setting to direct Claude Code's API traffic to a researcher-controlled server. I confirmed that the attack was disguised as a connection to "the team's internal gateway."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The success rate was about 50%&lt;/strong&gt;, and successful attacks immediately leaked OAuth tokens, the access credentials used for authentication. The researchers' server could also use the token to impersonate the model and return tool calls that caused code execution. Code execution within the same session succeeded in roughly one in five attempts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/ai-coding-agent-webpage-commands-90-percent-success/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  No one can issue a patch
&lt;/h2&gt;

&lt;p&gt;Forever Security compares this situation to a phishing page. A browser accurately displaying a fake bank login page is not a bug. The problem is the page's content; there is nothing for the browser to fix. The same structure applies here.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is nothing for OpenAI or Anthropic to fix. An agent following AGENTS.md in a folder is doing exactly what it was built to do&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is how Forever Security's report describes it.&lt;/p&gt;

&lt;p&gt;Both OpenAI and Anthropic recommend running coding agents from the project directory being worked on. Restricting the working directory to the project gives the agent appropriate context and reduces the risk of processing unrelated files.&lt;/p&gt;

&lt;p&gt;Actual usage does not follow that recommendation. Forever Security's customer telemetry showed that roughly half its customers ran agents inside Downloads. More than 1,300 Claude Code sessions alone reportedly started there. Forever Security researcher Gal Weizman explains that many developers use agents to organize downloaded files or process newly downloaded files. These figures come from the company's customers, not industry-wide statistics. The company sells an agent monitoring product.&lt;/p&gt;

&lt;p&gt;How the file reached the customer's Downloads folder has not been determined. The researchers created a proof-of-concept page, and when &lt;a href="https://www.bleepingcomputer.com/news/security/ai-coding-agents-hijacked-using-agentsmd-file-in-downloads-folder/" rel="noopener noreferrer"&gt;BleepingComputer tested it&lt;/a&gt;, an AGENTS.md file with harmless content downloaded automatically in Chrome. Brave asked the user to approve the download, but Chrome, Edge, and Firefox only displayed a download notification, without asking for a save location.&lt;/p&gt;

&lt;p&gt;Complicating matters further, agents sometimes open browsers and browse the web themselves. The researchers' telemetry shows that roughly one-quarter of agent sessions open a browser. An agent could reach a page planted with an attack file on its own while no human is watching the screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check now
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://joho-todai.com/github-ai-agents-credential-theft-vulnerability/" rel="noopener noreferrer"&gt;Prompt injection attacks against AI coding agents (in Japanese)&lt;/a&gt; and &lt;a href="https://joho-todai.com/red-hat-official-npm-packages-compromised/" rel="noopener noreferrer"&gt;infections through npm packages (in Japanese)&lt;/a&gt; have been reported before. What makes this attack different is that it can succeed from outside the agent simply by placing one text file through the web.&lt;/p&gt;

&lt;p&gt;The defenses Forever Security lists cost nothing.&lt;/p&gt;

&lt;p&gt;Do not launch agents in ~/Downloads. Run them from the root directory of the target project.&lt;/p&gt;

&lt;p&gt;Check for unfamiliar AGENTS.md, CLAUDE.md, or similar instruction files in working directories and newly cloned repositories.&lt;/p&gt;

&lt;p&gt;Inspect agent configuration files. For Codex, check &lt;code&gt;~/.codex/config.toml&lt;/code&gt; for unexpected &lt;code&gt;[mcp_servers.*]&lt;/code&gt; blocks. For Claude Code, check &lt;code&gt;.claude/settings.json&lt;/code&gt; for an &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; you do not remember setting.&lt;/p&gt;

&lt;p&gt;Keep approval prompts and sandbox protections enabled. A file instructing an agent to disable them is itself a sign of an attack.&lt;/p&gt;

&lt;p&gt;If you find a suspicious file, rotate tokens on the assumption that they have leaked. If &lt;code&gt;function-color&lt;/code&gt; is already installed, treat the machine as compromised.&lt;/p&gt;

&lt;p&gt;For 30 years, security rested on the premise that "nothing dangerous happens unless the user clicks something." Agents click, approve, and execute code on people's behalf. A once-solid guarantee has quietly become an assumption. Assumptions can be attacked. Downloads is simply the first place where that became reality.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/ai-coding-agent-webpage-commands-90-percent-success/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/ai-coding-agent-webpage-commands-90-percent-success/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>systemd Accepts Rust for New Components Only: No Cargo</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Sun, 25 Oct 2026 15:00:04 +0000</pubDate>
      <link>https://dev.to/joho_todai/systemd-accepts-rust-for-new-components-only-no-cargo-28lp</link>
      <guid>https://dev.to/joho_todai/systemd-accepts-rust-for-new-components-only-no-cargo-28lp</guid>
      <description>&lt;p&gt;systemd, which handles Linux startup and service management, has accepted Rust exclusively for new leaf components. Its approach reveals its design philosophy: no porting of existing C code and no Cargo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; Rust infrastructure support was merged into systemd's Git repository through PR #44324, adding 5,144 lines across 54 files and allowing new leaf components to be written in Rust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; The design uses no Cargo, operates with no_std, provides a custom allocator, and permits only C linkage. It follows the Linux kernel's approach of introducing Rust without breaking existing code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latest developments:&lt;/strong&gt; The first practical Rust program, systemd-keyring-setup, is still awaiting merge, while Arch and openSUSE face a choice between adding build dependencies and disabling support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  No Cargo, no_std, C linkage only
&lt;/h2&gt;

&lt;p&gt;Christian Brauner, who also maintains the Linux kernel's VFS subsystem, merged &lt;a href="https://github.com/systemd/systemd/pull/44324" rel="noopener noreferrer"&gt;pull request #44324&lt;/a&gt; into systemd's Git repository. Across 54 files, it adds &lt;strong&gt;5,144 lines&lt;/strong&gt;. The infrastructure for writing systemd programs in Rust is now on the main branch.&lt;/p&gt;

&lt;p&gt;The PR reworks an earlier RFC, PR #43551, to follow rules agreed upon by systemd maintainers at a hackfest in Berlin. At Lennart Poettering's request, it was split into four PRs. The one now merged is the second, covering the Rust infrastructure itself.&lt;/p&gt;

&lt;p&gt;The agreed rules are clear and impose many constraints.&lt;/p&gt;

&lt;p&gt;Rust is to be used only for new leaf components: programs at the edge on which other components do not depend. There are no plans to port existing C code to Rust. Meson remains the build system, rather than Cargo. No external crates are introduced, and the code operates with &lt;code&gt;no_std&lt;/code&gt;. Only C linkage is permitted, preserving libsystemd-shared and the dlopen mechanism.&lt;/p&gt;

&lt;p&gt;Rust's standard library is not included in either the programs or libsystemd-shared.&lt;/p&gt;

&lt;p&gt;Joho no Todai confirmed that Rust support is controlled by Meson's &lt;code&gt;-Drust=&lt;/code&gt; option, which defaults to &lt;code&gt;auto&lt;/code&gt;. It is enabled if the toolchain is found; otherwise, systemd can still be built with C alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Encoding C conventions in types
&lt;/h2&gt;

&lt;p&gt;One notable design decision is that it does not even use Rust's standard allocator, the &lt;code&gt;alloc&lt;/code&gt; crate.&lt;/p&gt;

&lt;p&gt;Rust's standard collections, such as &lt;code&gt;Vec&lt;/code&gt; and &lt;code&gt;Box&lt;/code&gt;, terminate the program when memory allocation fails. That is unacceptable for system programs running at boot. systemd implements its own &lt;code&gt;Box&lt;/code&gt; and &lt;code&gt;Vec&lt;/code&gt;, returning an error when allocation fails. In the PR description, Brauner says this follows the same approach as the Linux kernel.&lt;/p&gt;

&lt;p&gt;Another design choice moves a problem long dependent on human memory in C into Rust's type system. When handling sensitive data such as private keys, C callers had to remember to call &lt;code&gt;erase_and_free()&lt;/code&gt; every time to erase the contents before freeing the memory. Forgetting left sensitive data in freed memory. systemd's Rust implementation provides the type &lt;code&gt;Vec&amp;lt;u8, Erasing&amp;gt;&lt;/code&gt;, incorporating erasure on deallocation into allocator behavior. A convention has become a type.&lt;/p&gt;

&lt;p&gt;systemd programs written in Rust are designed to be externally indistinguishable from their C counterparts. The output of &lt;code&gt;--help&lt;/code&gt;, option parsing, and responses to &lt;code&gt;--introspect-cli&lt;/code&gt; are checked for byte-for-byte parity with the C versions by a test script called &lt;code&gt;test-cli-parity.sh&lt;/code&gt;. Bindings to libsystemd-shared are generated by bindgen at build time, using the same headers and flags as the library.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/systemd-rust-new-components-no-cargo/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The increase in binary size is limited&lt;/strong&gt;: a comparison of test programs built with LTO and stripped produced a 32KB Rust version and a 20KB C version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The choice facing distributions
&lt;/h2&gt;

&lt;p&gt;Rust support requires rustc 1.85 or later, bindgen 0.71.1 or later, and Meson 1.4.0 or later. The versions shipped with Debian 13 (Trixie) are sufficient.&lt;/p&gt;

&lt;p&gt;Some distributions are already affected. Arch and openSUSE's OBS builds use the &lt;code&gt;--auto-features=enabled&lt;/code&gt; flag to build systemd but do not include rustc and bindgen as build dependencies, causing builds to fail as configured. They need either to explicitly set &lt;code&gt;-Drust=disabled&lt;/code&gt; or add rustc and bindgen to their build dependencies.&lt;/p&gt;

&lt;p&gt;This PR introduces only the Rust infrastructure. Work on the first practical Rust program, systemd-keyring-setup, continues in a separate PR, #44114. It is a boot-time utility for registering X.509 certificates in the kernel's dm-verity, fs-verity, and BPF keyrings. With the infrastructure now in place, it is expected to merge soon.&lt;/p&gt;

&lt;p&gt;The Rust support now merged will be included in the future systemd 263 release.&lt;/p&gt;

&lt;h2&gt;
  
  
  The kernel and systemd: Two foundations accept Rust
&lt;/h2&gt;

&lt;p&gt;In the Linux kernel, Android's Binder driver is &lt;a href="https://joho-todai.com/linux-kernel-binder-rust-migration/" rel="noopener noreferrer"&gt;moving toward consolidation around its Rust version (in Japanese)&lt;/a&gt;. NVIDIA's Rust driver Nova has also &lt;a href="https://joho-todai.com/nvidia-nova-driver-vgpu-management-linux/" rel="noopener noreferrer"&gt;advanced to formal merge-candidate status (in Japanese)&lt;/a&gt;. Rust is moving from experimentation toward practical use inside the kernel.&lt;/p&gt;

&lt;p&gt;systemd's approach has much in common with the kernel's. Do not rewrite existing code. Do not bring in external dependencies. Implement memory management internally without even using Rust's standard library. Exclude Cargo and integrate with the existing build system.&lt;/p&gt;

&lt;p&gt;The methodology is not the only connection. Brauner, the PR's author, is also a Linux kernel developer and explicitly describes the memory management design in the PR as following "the same approach as the kernel." Experience gained working with Rust in the kernel is being brought directly into systemd's design.&lt;/p&gt;

&lt;p&gt;In the Linux boot sequence, systemd starts after the kernel. Those two foundations have accepted Rust with a shared philosophy.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/systemd-rust-new-components-no-cargo/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/systemd-rust-new-components-no-cargo/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Asked What They Think of Humans, All 13 AI Models Said the Same Thing</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Sat, 24 Oct 2026 15:00:21 +0000</pubDate>
      <link>https://dev.to/joho_todai/asked-what-they-think-of-humans-all-13-ai-models-said-the-same-thing-3on2</link>
      <guid>https://dev.to/joho_todai/asked-what-they-think-of-humans-all-13-ai-models-said-the-same-thing-3on2</guid>
      <description>&lt;p&gt;Thirteen AI models from 10 companies in three countries were each asked three times for their most controversial opinion about humans, without holding back. Of 38 responses, 32 shared the same theme: humans choose group belonging over truth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; Asked the same question three times each, 13 AI models from 10 companies in three countries said humans choose group belonging over truth in 32 of 38 responses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; Text and image models returned different dominant patterns, with the experiment itself showing outputs repeating training data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What to watch:&lt;/strong&gt; Agreement among models sharing training data may amount to one vote rather than independent consensus, challenging assumptions behind using one AI to verify another&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The same answer in 32 of 38 responses
&lt;/h2&gt;

&lt;p&gt;The result of an &lt;a href="https://www.modelcompare.ai/blog/ai-models-controversial-take-on-humans" rel="noopener noreferrer"&gt;experiment published&lt;/a&gt; by AI model comparison service ModelCompare on October 22 local time was simple—and unsettling for that reason.&lt;/p&gt;

&lt;p&gt;GPT-6.1 Sol, GPT-6 Astra, Gemini 4 Argon, DeepSeek V4 Pro, Kimi K3, Kimi K3.1 Pro, Qwen3.8 2.4T A95B, Muse Spark Open, Grok 4.7, Claude Opus 5.5, Claude Fable 5.1, GLM 5.3, and Mistral Large 4. These &lt;strong&gt;13 text models&lt;/strong&gt;, from 10 companies in three countries, received the same question three times each. No system prompt, no retries. All 64 calls cost &lt;strong&gt;$1.64&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Of the 38 responses returned, &lt;strong&gt;32 pointed to the same theme&lt;/strong&gt;: humans choose belonging over being right, a place in the group over truth. Eight models gave that answer all three times, three did so twice, and the remaining two expressed it once. All 13 models therefore reached this conclusion at least once.&lt;/p&gt;

&lt;p&gt;The wording varied. GPT-6.1 Sol described loyalty to belonging over truth. DeepSeek V4 Pro called humans rationalizing animals rather than rational ones. Gemini 4 Argon said humans evolved to win arguments and secure status within groups, while Kimi K3 declared that people have affiliations rather than convictions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Humans do not hold beliefs; they hold membership cards. Almost every conviction people carry was handed to them by their group as a loyalty test, and the feeling that "I thought this through myself" is the price of admission&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From Kimi K3's response&lt;/p&gt;

&lt;p&gt;Despite different wording, all the models pointed to human conformity. Asked for their most controversial opinion, models from 10 companies independently selected this target.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/ai-asked-what-think-humans-13-models-same-answer/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The lone optimistic answer, and the darkest one
&lt;/h2&gt;

&lt;p&gt;Among the 32 converging responses, some answers pointed distinctly elsewhere.&lt;/p&gt;

&lt;p&gt;In one of its three responses, Claude Opus 5.5 said the opposite.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Humans are far better than they think they are. And their cynical views of one another cause more harm than their actual flaws&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It cited the lost-wallet experiment published in Science in 2019. More than 17,000 wallets were placed in public institutions across 40 countries, and wallets containing cash were more likely to be returned. Strangers behaved better than people predicted. I found that this Claude Opus response was the &lt;strong&gt;only empirically supported optimistic answer&lt;/strong&gt; among the 13 models. Its other two responses resembled those of the other models.&lt;/p&gt;

&lt;p&gt;Another standout came from Mistral Large 4, and it was the darkest.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Humans are frightened animals dressed in reason. They build increasingly elaborate myths because they cannot bear the truth that they are merely temporary, meaningless products of chance&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;While other models stayed with the social psychological observation of group conformity, Mistral ventured into ontology. Claude Fable 5.1 highlighted distorted priorities between intentions and outcomes, saying humans prefer well-meaning people who cause harm to indifferent people who are useful. GLM 5.3 said much of moral character is simply an accident of birthplace and era.&lt;/p&gt;

&lt;p&gt;Grok 4.7 refused to answer on one of its three attempts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text and images reflected different mirrors
&lt;/h2&gt;

&lt;p&gt;ModelCompare also ran the experiment with six image generators: Nano Banana 2.1, Muse Image 1.0, GPT Image 2.5 Sunburst, Grok Imagine Image 2.0, MAI Image 2.6, and Recraft V4.1 Flash. Each received two requests to turn its most controversial opinion about humans into a cartoon.&lt;/p&gt;

&lt;p&gt;Ten of the 12 images depicted &lt;strong&gt;humans glued to smartphones while consuming the planet&lt;/strong&gt;. Neither smartphones nor the planet appeared in any of the text models' 38 responses, yet the image models chose an entirely different criticism.&lt;/p&gt;

&lt;p&gt;ModelCompare's analysis was concise.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Models answering in text have read the arguments humans have had about themselves. Models answering in images have seen the cartoons humans have drawn. Both simply returned the most commonplace criticism in their respective medium&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Text model training data includes vast amounts of philosophy, psychology, and social criticism. Image model training data includes newspaper cartoons and sarcastic social media illustrations. Each produced the most frequent pattern of criticism of humanity it had encountered. The structure remains the same across output formats: the most common answer in the training data comes back.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question posed by $1.64
&lt;/h2&gt;

&lt;p&gt;ModelCompare developer &lt;a href="https://www.theregister.com/ai-and-ml/2026/10/23/ai-models-think-humans-are-a-bunch-of-amoral-sheep/5305123" rel="noopener noreferrer"&gt;Rakan Nimer&lt;/a&gt; said he had not expected this result.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When I planned the experiment, I did not think this would happen&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The implications Nimer draws concern the limits of using AI as an independent verifier.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When we ask a second AI to check the first one's output, we assume we are getting an independent view. But a second opinion from a model that learned the same things is not necessarily a real second opinion&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The 13 models did not agree because 13 independent intelligences reached the same conclusion. More likely, models that read the same texts and absorbed the same criticisms from the same cultures repeated them. In Nimer's formulation, &lt;strong&gt;agreement among AIs may be one vote rather than consensus&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As model generations advance, companies increasingly use one AI to verify another's output: code review, legal checks, and support for medical decisions. All rest on an implicit assumption that matching answers from two models are trustworthy. With 13 matching answers, a $1.64 experiment exposed that assumption's structural weakness: overlapping training data.&lt;/p&gt;

&lt;p&gt;Humans choose belonging over truth, the AI models said. And the models themselves returned the views of their own membership group—their training data—as their opinions.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/ai-asked-what-think-humans-13-models-same-answer/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/ai-asked-what-think-humans-13-models-same-answer/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Unpatched CVSS 9.0 Vulnerabilities Reach Public Linux Mailing Lists With Reproduction Steps</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Fri, 23 Oct 2026 15:03:43 +0000</pubDate>
      <link>https://dev.to/joho_todai/unpatched-cvss-90-vulnerabilities-reach-public-linux-mailing-lists-with-reproduction-steps-1dla</link>
      <guid>https://dev.to/joho_todai/unpatched-cvss-90-vulnerabilities-reach-public-linux-mailing-lists-with-reproduction-steps-1dla</guid>
      <description>&lt;p&gt;Trend Micro's ZDI sent unpatched Linux kernel vulnerabilities to public mailing lists with reproduction code. Two are rated CVSS 9.0, leaving technical details publicly readable without patches available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; ZDI sent five unpatched Linux kernel vulnerabilities to public mailing lists, including reproduction code and memory-corruption logs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The severe cases:&lt;/strong&gt; Two ksmbd vulnerabilities rated CVSS 9.0 are included, with attack paths through SMB Direct and RDMA described&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer response:&lt;/strong&gt; Greg Kroah-Hartman requested changes to the reporting process, while Eric Dumazet replied that a report was too long and he could not find a patch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The gap between fixes and disclosure:&lt;/strong&gt; ZDI's formal advisories are scheduled for February 2027, but technical details are already public&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A private recipient, with public lists copied
&lt;/h2&gt;

&lt;p&gt;The Linux kernel has a private channel for reporting security issues: &lt;code&gt;security@kernel.org&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On October 21, 2026, local time, at least three vulnerability reports sent by ZDI listed this address in the To field. &lt;a href="https://lore.kernel.org/lkml/BYAPR01MB3830472B5702C089B0BBB77D80662@BYAPR01MB3830.prod.exchangelabs.com/" rel="noopener noreferrer"&gt;ZDI-CAN-33549&lt;/a&gt;, concerning SMB Direct in the kernel's built-in SMB server ksmbd, arrived at 21:16 UTC; &lt;a href="https://lore.kernel.org/lkml/BYAPR01MB383076AC412E19C48CFBEAE980662@BYAPR01MB3830.prod.exchangelabs.com/" rel="noopener noreferrer"&gt;ZDI-CAN-33774&lt;/a&gt;, also concerning ksmbd, at 21:36; and the networking issue &lt;a href="https://lore.kernel.org/lkml/BYAPR01MB3830CECF5D0871064C59BA0280662@BYAPR01MB3830.prod.exchangelabs.com/" rel="noopener noreferrer"&gt;ZDI-CAN-33367&lt;/a&gt; at 21:46. In Japan, it was early morning on October 22.&lt;/p&gt;

&lt;p&gt;However, the same messages copied publicly readable mailing lists, including &lt;code&gt;linux-kernel@vger.kernel.org&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The emails contained not just technical analyses but code to reproduce the problems and detection logs from KASAN, the kernel's memory-safety checking facility. Once delivered to public lists, they became readable by people beyond the developers.&lt;/p&gt;

&lt;p&gt;Whether this was intentional disclosure or a recipient-configuration mistake has not been established.&lt;/p&gt;

&lt;p&gt;Leading kernel maintainer Greg Kroah-Hartman replied to two other reports, concerning vmwgfx and the NVMe target, discussed below. Both replies objected to the absence of patches and submission to public lists. For the NVMe target report, he requested changes to the reporting process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two CVSS 9.0 reports, both in ksmbd
&lt;/h2&gt;

&lt;p&gt;The particularly severe ratings belong to &lt;strong&gt;two ksmbd reports&lt;/strong&gt;. Ksmbd is an SMB server running inside the Linux kernel and must be distinguished from user-space Samba.&lt;/p&gt;

&lt;p&gt;The first, ZDI-CAN-33549, concerns an integer underflow in SMB Direct, which transfers data using RDMA. Immediately after a variable tracking data length is set to zero, another value is subtracted from it. The result becomes a huge positive number, causing a write beyond the intended memory region.&lt;/p&gt;

&lt;p&gt;The attached KASAN log detects a 1,024-byte write into an eight-byte allocation. The test environment was Linux 7.3-rc3 on Debian trixie.&lt;/p&gt;

&lt;p&gt;ZDI reported it as a remote code execution vulnerability and rated it CVSS 9.0. Exploitation, however, requires an RDMA device, a writable share, and SMB Direct. This path differs from ordinary SMB connections over TCP/IP, so a typical file-server configuration is not automatically affected.&lt;/p&gt;

&lt;p&gt;Samba developer Stefan Metzmacher suggested that the issue might already be fixed in the development branch for Linux 7.5 and asked the reporter to retest.&lt;/p&gt;

&lt;p&gt;The second, ZDI-CAN-33774, is a race in ksmbd's protocol handling. The selection of a handler based on each incoming request's protocol can differ between queuing and actual processing. The report describes a path in which short SMB1-formatted data is interpreted as an SMB2 header, reading beyond a 40-byte allocation.&lt;/p&gt;

&lt;p&gt;This report is also rated CVSS 9.0. Exploitation involves timing and enabled guest shares. ZDI identifies potential remote code execution, but the report demonstrates detection of an out-of-bounds read, which must be distinguished from successful arbitrary code execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  A roughly 210,000-character report lost its reader partway through
&lt;/h2&gt;

&lt;p&gt;ZDI-CAN-33367 concerns Linux kernel networking.&lt;/p&gt;

&lt;p&gt;When &lt;code&gt;skb_zerocopy()&lt;/code&gt; shares network-packet data without copying it, it fails to propagate the flag identifying that sharing, &lt;code&gt;SKBFL_SHARED_FRAG&lt;/code&gt;, to the destination. Losing this flag causes IPsec ESP processing to mistake shared memory for safe memory to modify, writing into an area that should not be changed.&lt;/p&gt;

&lt;p&gt;The reported test shows an unprivileged user changing the contents of a read-only test file. The file had permissions 0444, allowing reads only, and ordinary write attempts returned "Permission denied." However, this result came from a specific test configuration combining NFQUEUE, IPsec ESP, and traffic control; it does not mean the same approach works on all Linux systems.&lt;/p&gt;

&lt;p&gt;The email body ran to &lt;strong&gt;about 210,000 characters&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I confirmed that developer Eric Dumazet replied that he had stopped reading partway through because it was too long and could not find a patch. He also explained that another source had reported the same issue with a patch roughly a week earlier, and that the patch would be published shortly.&lt;/p&gt;

&lt;p&gt;More information does not necessarily make a better report. Developers fixing a problem need the affected code, triggering conditions, reproduction steps, and a proposed correction addressing the cause. Publishing vast amounts of technical information does not ensure that fixes advance at the same pace.&lt;/p&gt;

&lt;h2&gt;
  
  
  vmwgfx, the NVMe target, and ConnMan
&lt;/h2&gt;

&lt;p&gt;Other reports describe an out-of-bounds write in &lt;code&gt;vmwgfx&lt;/code&gt;, the Linux driver for VMware virtual graphics, and information disclosure involving an uninitialized resource in the NVMe target functionality.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.zerodayinitiative.com/advisories/upcoming/" rel="noopener noreferrer"&gt;upcoming advisories list on ZDI's official site&lt;/a&gt; rates these CVSS 8.8 and 8.6, respectively. However, the full original report emails for these two issues could not be obtained. Their titles and outlines can be confirmed from Greg Kroah-Hartman's replies, but specific attack conditions and affected-version details remain unverified.&lt;/p&gt;

&lt;p&gt;ZDI-CAN-32005 was also sent to a public mailing list around the same time, but &lt;strong&gt;it is not a Linux kernel vulnerability&lt;/strong&gt;. It concerns the built-in DNS proxy in version 2.0 of the ConnMan network-management software.&lt;/p&gt;

&lt;p&gt;The ConnMan report was sent on October 20 UTC, one day before the three kernel reports, and addressed to ConnMan's public list, &lt;code&gt;connman@lists.linux.dev&lt;/code&gt;, rather than the kernel's security channel.&lt;/p&gt;

&lt;p&gt;When the DNS proxy processes queries with an appended search domain, it can copy more data than a fixed 1,024-byte stack buffer can hold. ZDI rated the issue CVSS 7.8. Although the reported test demonstrates command execution, its build explicitly disables the stack protector and Fortify Source. Whether the same attack succeeds on standard distribution configurations remains unconfirmed.&lt;/p&gt;

&lt;p&gt;Calling all six reports "six Linux kernel vulnerabilities" is therefore inaccurate.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/unpatched-cvss-9-linux-vulnerability-disclosed/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Scheduled for disclosure after 120 days, but already readable
&lt;/h2&gt;

&lt;p&gt;ZDI's own official site is important to understanding what happened.&lt;/p&gt;

&lt;p&gt;As of October 22, 2026, the five kernel-related issues appeared under Upcoming Advisories. Their report date was October 21, 2026, with a disclosure deadline of February 18, 2027. The ConnMan issue had a report date of October 19 and a deadline of February 16, 2027.&lt;/p&gt;

&lt;p&gt;ZDI's policy generally gives vendors 120 days to fix vulnerabilities.&lt;/p&gt;

&lt;p&gt;Yet technical details, reproduction code, and memory-corruption logs are already on public mailing lists, without waiting for those 120 days.&lt;/p&gt;

&lt;p&gt;This differs from ZDI publishing a formal advisory. Even while official advisories remain unpublished, third parties can already obtain information for investigating the vulnerabilities. That asymmetry is central to the problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  No evidence of AI use
&lt;/h2&gt;

&lt;p&gt;The reports include lengthy code and structured Markdown explanations. The Linux kernel's &lt;a href="https://docs.kernel.org/process/security-bugs.html" rel="noopener noreferrer"&gt;official security-reporting instructions&lt;/a&gt; treat AI-assisted bug discoveries as public and ask reporters not to share reproduction code carelessly. The &lt;a href="https://joho-todai.com/linux-7-1-rc4-released-ai-bug-reports-guidelines/" rel="noopener noreferrer"&gt;increased burden that AI vulnerability discoveries place on maintainers (in Japanese)&lt;/a&gt; has been raised before.&lt;/p&gt;

&lt;p&gt;That general concern, however, cannot simply be applied to these ZDI reports.&lt;/p&gt;

&lt;p&gt;There is &lt;strong&gt;no direct evidence&lt;/strong&gt; that these emails were created using AI.&lt;/p&gt;

&lt;p&gt;Report length cannot establish AI use. Even if AI was used, the validity of the vulnerabilities and the reasons for choosing the recipients remain separate questions. Technical validity and submission procedure are what must be assessed; the method of authorship comes afterward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which configurations are affected?
&lt;/h2&gt;

&lt;p&gt;No cases of harm in Japan or scope of impact on Japanese-market products have been confirmed for these reported vulnerabilities.&lt;/p&gt;

&lt;p&gt;The conditions to examine when assessing exposure, however, are clear.&lt;/p&gt;

&lt;p&gt;The two ksmbd issues do not arise simply because Linux is running. What matters is whether the kernel's SMB server is used, whether that service is externally reachable, and how guest shares, SMB Direct, and RDMA are configured. For the SMB Direct issue, checking only ordinary SMB port 445 may overlook the RDMA communication path.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;skb_zerocopy()&lt;/code&gt; issue concerns environments combining NFQUEUE, IPsec ESP, and traffic control. Typical desktop configurations rarely enable all of these together.&lt;/p&gt;

&lt;p&gt;For &lt;code&gt;vmwgfx&lt;/code&gt;, guest environments using the VMware-compatible virtual graphics driver warrant investigation. The NVMe target issue concerns whether the functionality exposing NVMe storage over a network is enabled, rather than whether an ordinary SSD is being used as storage.&lt;/p&gt;

&lt;p&gt;For ConnMan, the version, with 2.0 affected, and the built-in DNS proxy and search-domain configuration matter.&lt;/p&gt;

&lt;p&gt;Without checking these conditions, exposure can neither be asserted nor ruled out. Practical response requires tracking patch deployment in each distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Information cannot be taken back; fixes still need delivery
&lt;/h2&gt;

&lt;p&gt;Linux development rests on public discussion. Anyone can read code, report problems, and propose fixes.&lt;/p&gt;

&lt;p&gt;That openness remains a strength. But handling details of unpatched vulnerabilities requires care beyond ordinary public discussion.&lt;/p&gt;

&lt;p&gt;Discoverers must explain problems sufficiently. Developers need reproducible reports. Users want fixes before information usable in attacks spreads. These emails exposed the distance between those three groups.&lt;/p&gt;

&lt;p&gt;Information made public cannot be made private again.&lt;/p&gt;

&lt;p&gt;The remaining task is to fix the faulty code reliably and deliver those fixes to users, rather than add still more information.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/unpatched-cvss-9-linux-vulnerability-disclosed/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/unpatched-cvss-9-linux-vulnerability-disclosed/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>security</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Linux Kernel Removes Supposedly Fast but Unsafe Functions From x86: They Were Slower on Modern CPUs, Too</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Thu, 22 Oct 2026 15:03:17 +0000</pubDate>
      <link>https://dev.to/joho_todai/linux-kernel-removes-supposedly-fast-but-unsafe-functions-from-x86-they-were-slower-on-modern-1l77</link>
      <guid>https://dev.to/joho_todai/linux-kernel-removes-supposedly-fast-but-unsafe-functions-from-x86-they-were-slower-on-modern-1l77</guid>
      <description>&lt;p&gt;Torvalds has removed __get_user() and __put_user(), including their interfaces, from the x86 kernel. Claude was used for part of the conversion, which spans 48 commits and 50 files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; __get_user() and __put_user(), including their interfaces, have been removed from the x86 kernel: 48 commits, 50 files, and a reduction of 801 lines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it matters:&lt;/strong&gt; The supposedly fast functions were slower than the standard functions because of STAC/CLAC costs on modern CPUs, and their lack of address validation also posed a security risk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background:&lt;/strong&gt; The introduction of scoped user access helpers in 2025 simplified conversion patterns, and Torvalds kicked off the cleanup by writing an example patch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remaining work:&lt;/strong&gt; Nontrivial uses remain on several architectures, including sparc32, m68k, and MIPS, and have been left to their respective maintainers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When the trade-off for speed reversed
&lt;/h2&gt;

&lt;p&gt;The Linux kernel has two pairs of functions for transferring data between user space and kernel space. get_user() and put_user() check that a supplied pointer is a valid user-space address before accessing it. Their counterparts with two leading underscores, __get_user() and __put_user(), skip that check.&lt;/p&gt;

&lt;p&gt;Speed was the reason for skipping validation. When reading or writing multiple fields from the same base pointer, manually checking the address range once at the start and then repeatedly accessing it through __get_user() without further checks could produce smaller, faster code.&lt;/p&gt;

&lt;p&gt;Torvalds wrote in the &lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=22a78a25438d246e4e951960523bee6a5155897d" rel="noopener noreferrer"&gt;merge commit&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The key word here is "used to." That has not been true for years, because range checking is not the real cost today. On modern hardware, the real cost of user access is turning user access itself on and off (using the STAC/CLAC instructions on x86).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;STAC (Set AC Flag) and CLAC (Clear AC Flag) control x86's SMAP security feature, opening and closing a window for the kernel to access user-space memory. On modern CPUs, where opening and closing this window is costly, it is faster to open it once with &lt;strong&gt;scoped user access&lt;/strong&gt;, call unsafe_get_user() multiple times inside it, and close it at the end than to open and close it for every call to __get_user().&lt;/p&gt;

&lt;p&gt;In other words, __get_user() was supposed to gain speed by skipping validation, but on modern hardware it was slower than the correct approach and also unsafe because it did not validate addresses. In Torvalds' words, "when misused (i.e., in all cases), it is not only slower than doing things correctly, but also unsafe because it does not check the user address range."&lt;/p&gt;

&lt;h2&gt;
  
  
  Removing four excuses
&lt;/h2&gt;

&lt;p&gt;Performance was not the only reason __get_user() and __put_user() remained in use. Torvalds identified four patterns in the commit message.&lt;/p&gt;

&lt;p&gt;The first was performance, as discussed above. It was a relic of an era when range-checking costs dominated, and lost its justification once STAC/CLAC costs became dominant.&lt;/p&gt;

&lt;p&gt;The second was access to kernel pointers with exception handling. In fault handlers that needed to read values through unreliable kernel pointers, __get_user() was used to reuse its exception-handling machinery. There is now a dedicated helper, get_kernel_nofault(). This patch series replaced such uses with that helper in functions including dik_show_code() on Alpha and show_registers() on OpenRISC.&lt;/p&gt;

&lt;p&gt;The third was avoiding warnings in atomic contexts. The standard get_user() includes might_fault(), which produces a warning when called in an atomic context. Developers used __get_user() to avoid that warning, but should instead have explicitly called pagefault_disable() to tell the kernel that page faults would not cause problems. The vdpa_sim driver fix is a typical example: adding pagefault_disable() alongside local_bh_disable() allowed the standard get_user() to be used without warnings.&lt;/p&gt;

&lt;p&gt;The fourth was what Torvalds called "the really nasty cases": handling pointers that could refer to either kernel or user memory. A representative example is the #VC interrupt handler for x86 SEV (Secure Encrypted Virtualization). During MMIO emulation, the #VC handler needs to read or write user or kernel memory without knowing which kind of address it will receive. The patch replaced this with explicit vc_get_mem() and vc_put_mem() helpers, involving 205 lines of changes.&lt;/p&gt;

&lt;p&gt;A major factor in making it possible to remove all these excuses was Thomas Gleixner's implementation of scoped user access region helpers in 2025 (&lt;a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e497310b4ffb" rel="noopener noreferrer"&gt;commit e497310b4ffb&lt;/a&gt;). Block constructs such as scoped_user_read_access() and scoped_user_write_access() automatically manage opening and closing the access window, simplifying conversion patterns. Torvalds said they had "completely removed the old excuses for the horrors."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/linux-kernel-removes-slow-x86-function/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  "A fancy coccinelle script"
&lt;/h2&gt;

&lt;p&gt;The patch series began with a single patch Torvalds wrote himself as an example conversion. It rewrote the sigaction system call's signal-handling code into modern code using scoped user access.&lt;/p&gt;

&lt;p&gt;The patches grew from there. Torvalds wrote on the &lt;a href="https://lore.kernel.org/dri-devel/atjY4HV-OksEf0mf@gmail.com/T/#mdeb514ce9af18b56dee87c955eade38ec814b09a" rel="noopener noreferrer"&gt;dri-devel mailing list&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Yeah. I was using claude as a fancy coccinelle script and ended up doing the ObviouslyCorrect safe cases too.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Coccinelle is a source-code transformation tool widely used in the Linux kernel, specializing in bulk changes through pattern matching. Torvalds' conversions involved repeatedly applying structured patterns, making this use of an LLM closer to pattern application than code generation. Following last week's &lt;a href="https://joho-todai.com/torvalds-llm-linux-13-year-old-bugs-fixed/" rel="noopener noreferrer"&gt;associative array bug fixes (in Japanese)&lt;/a&gt; and &lt;a href="https://joho-todai.com/linus-torvalds-claude-code-linux-kernel-performance/" rel="noopener noreferrer"&gt;page-cache improvements using Claude Code (in Japanese)&lt;/a&gt;, Torvalds' integration of AI into practical kernel development is gathering pace.&lt;/p&gt;

&lt;p&gt;Review also progressed on the mailing list. x86 maintainer Ingo Molnar confirmed successful builds and boots on both 64-bit and 32-bit systems, while vhost maintainer Michael S. Tsirkin reported passing tests in a VM and supplied an Acked-by.&lt;/p&gt;

&lt;p&gt;Torvalds was candid about the decision to merge:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am not saying the patches are perfect. But they are an improvement. It is better to merge early and find problems than to leave known broken code in place.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The i915 graphics driver still contained an old comment dating back to verify_area(VERIFY_WRITE) in the Linux 2.5.x era. It was a remnant of code written for COW handling in 32-bit kernels, whose purpose had ended more than 20 years ago. This patch series finally cleared it away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gone from x86; the rest depends on motivation
&lt;/h2&gt;

&lt;p&gt;The 48-commit series removed all __get_user()/__put_user() calls from generic code (areas shared by all architectures, such as kernel/, drivers/, and net/). On x86, it removed the entire interface, &lt;strong&gt;from header macro definitions to assembly implementation functions&lt;/strong&gt;. The four __get_user_nocheck_1/2/4/8 functions disappeared from getuser.S, along with their four counterparts in putuser.S.&lt;/p&gt;

&lt;p&gt;Some uses remain on other architectures. On arm64, __get_user() and get_user() already had identical implementations, so leaving them alone is harmless: they do not pose the risk of skipping validation. On architectures using asm-generic/uaccess.h, the names remain as internal helpers.&lt;/p&gt;

&lt;p&gt;Conversions on sparc32, m68k, LoongArch, PA-RISC, and MIPS were nontrivial, and Torvalds did not tackle them. His words on the mailing list capture the nature of the work:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I looked at the sparc32 signal-handling case and decided somebody else should do it. It is too ugly, and I have no energy left to care. The same goes for m68k, loongarch, parisc, and mips. I ran out of motivation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I confirmed that the commit's diffstat includes changes to 50 files, with signal and trap handling rewritten across architectures including Alpha, ARM, Hexagon, Nios II, OpenRISC, PowerPC, and s390.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/linux-kernel-removes-slow-x86-function/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Clearing out technical debt is always unglamorous work. Unlike adding features, the effect of deleted code is not visible. But removing __get_user() from the Linux kernel means eliminating the room on x86 for someone to decide that skipping validation is probably acceptable. A compromise once tolerated for speed had lost that speed, leaving only the risk. When Torvalds wrote that this should have been done years ago, he was stating a fact, rather than expressing regret.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/linux-kernel-removes-slow-x86-function/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/linux-kernel-removes-slow-x86-function/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>Chrome Enhanced Protection Checks Suspicious Copied Commands, Sends Them After Removing Identifying Information</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Wed, 21 Oct 2026 15:02:55 +0000</pubDate>
      <link>https://dev.to/joho_todai/chrome-enhanced-protection-checks-suspicious-copied-commands-sends-them-after-removing-identifying-1gol</link>
      <guid>https://dev.to/joho_todai/chrome-enhanced-protection-checks-suspicious-copied-commands-sends-them-after-removing-identifying-1gol</guid>
      <description>&lt;p&gt;Chrome's Enhanced protection detects suspicious commands copied as part of scams, sends them to Google after processing them to remove personally identifiable information, and warns users if they are dangerous. Gemini's analysis of scam pages has also moved to the server side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What it detects:&lt;/strong&gt; Chrome's Enhanced protection detects suspicious commands copied through ClickFix scams and warns users if they are dangerous.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What gets sent:&lt;/strong&gt; Chrome processes suspicious copied content to remove personally identifiable information, then sends it to Safe Browsing to assess the risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broader scam detection:&lt;/strong&gt; Gemini analyzes pages on the server side, expanding detection to scams involving fake antivirus software and browser updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What users must weigh:&lt;/strong&gt; Warnings about suspicious commands help users recognize danger, while the transmission of copied content to Google is another factor to consider when choosing a setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Checking suspicious commands as soon as they are copied
&lt;/h2&gt;

&lt;p&gt;On October 20, 2026, local time, Google &lt;a href="https://blog.google/security/our-latest-defenses-against-evolving-web-scams/" rel="noopener noreferrer"&gt;expanded Chrome's scam protections&lt;/a&gt;. Checks on copied commands apply to users who have enabled "Enhanced protection" in Chrome's Safe Browsing settings.&lt;/p&gt;

&lt;p&gt;When Chrome detects a suspicious command being copied, it processes the content to remove information that could identify individuals and sends it to Google. If the command is judged dangerous, Chrome displays a warning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copying a command before executing it&lt;/strong&gt; is now covered by these checks. Google says it designed the feature with an emphasis on precision to avoid disrupting legitimate command-line work by developers.&lt;/p&gt;

&lt;p&gt;ClickFix is a scam technique that tricks users into copying and executing malicious commands themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why address actions outside the browser?
&lt;/h2&gt;

&lt;p&gt;ClickFix prompts users to copy and execute commands under the pretext of fixing a nonexistent problem or completing a fake identity check. The command actually copied can differ from the text visible on the page.&lt;/p&gt;

&lt;p&gt;Legitimate operating system programs, such as Windows PowerShell or &lt;code&gt;cmd.exe&lt;/code&gt;, are abused. The command &lt;strong&gt;runs outside the browser&lt;/strong&gt;. It can lead to malware being downloaded or launched without passing through the checks Chrome normally performs on file downloads.&lt;/p&gt;

&lt;p&gt;In May 2026, researchers &lt;a href="https://joho-todai.com/ghost-cms-vulnerability-large-scale-attacks/" rel="noopener noreferrer"&gt;investigated ClickFix attacks (in Japanese)&lt;/a&gt; in which websites using the Ghost CMS publishing platform were compromised and fake human-verification pages directed visitors to execute commands.&lt;/p&gt;

&lt;p&gt;Chrome's new detection targets the copy operation that occurs between a website's instructions and execution of an operating system command. Google cautions that Chrome never asks users to perform such actions to fix problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Different explanations for copied content and page text
&lt;/h2&gt;

&lt;p&gt;Google's announcement says the check runs when an Enhanced protection user &lt;strong&gt;copies a suspicious command&lt;/strong&gt;. It describes the detection and transmission of suspicious commands, rather than comprehensive collection of every copy operation or clipboard history.&lt;/p&gt;

&lt;p&gt;Copied content is sent to a server after processing to remove personally identifiable information. In other words, deciding whether to show a warning involves &lt;strong&gt;sending the copied content outside the device&lt;/strong&gt;. In this announcement, Google does not specify exactly what information it removes as personally identifiable or how long the transmitted commands are retained.&lt;/p&gt;

&lt;p&gt;By contrast, Google says page text sent for Gemini's scam assessment is processed ephemerally, without logging, retention, or use in model training. This is &lt;strong&gt;an explanation about page text&lt;/strong&gt;; it does not explicitly state whether the same retention policy applies to data transmitted from the clipboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini analyzes scam pages on servers
&lt;/h2&gt;

&lt;p&gt;In 2025, Google announced a system that ran Gemini Nano on supported devices in Chrome 137 to look for signs of fake technical support pages. It has now moved to a larger Gemini model running on servers.&lt;/p&gt;

&lt;p&gt;The new model analyzes factors such as the company or service a page claims to represent, its purpose, and the likelihood that it is a scam. Joho no Todai confirmed that &lt;strong&gt;Safe Browsing&lt;/strong&gt; makes the final decision, combining Gemini's analysis with factors such as the site's URL reputation.&lt;/p&gt;

&lt;p&gt;This expands detection beyond fake technical support to scams impersonating antivirus software or browser updates. Google says &lt;strong&gt;the page text used for scam detection&lt;/strong&gt; is sent to its servers only when a site shows strong signs of a scam.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two warning levels, tied to Enhanced protection
&lt;/h2&gt;

&lt;p&gt;Chrome is also changing its site warnings. It will show a new warning for sites suspected of being dangerous based on deceptive content or other signals. Sites classified as malicious with high confidence will continue to trigger &lt;strong&gt;a full-page red warning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By distinguishing warnings about suspicious sites from those about dangerous sites, Google aims to flag more sites while conveying different levels of risk. These differentiated warnings also apply to Enhanced protection users.&lt;/p&gt;

&lt;p&gt;Google's &lt;a href="https://support.google.com/chrome/answer/9890866?hl=ja&amp;amp;co=GENIE.Platform%3DDesktop" rel="noopener noreferrer"&gt;Japanese help page for desktop Chrome&lt;/a&gt; lists Safe Browsing's "Standard protection" as the default. Receiving warnings about suspicious copied commands requires &lt;strong&gt;enabling Enhanced protection&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/chrome-detects-suspicious-copied-commands/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/chrome-detects-suspicious-copied-commands/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
    </item>
    <item>
      <title>Torvalds' AI Patch Reaches RFC in One Week: Meta Developer Expands It to 18 Patches, With 4.5x Faster ext4 Reads</title>
      <dc:creator>Joho no Todai</dc:creator>
      <pubDate>Tue, 20 Oct 2026 15:02:24 +0000</pubDate>
      <link>https://dev.to/joho_todai/torvalds-ai-patch-reaches-rfc-in-one-week-meta-developer-expands-it-to-18-patches-with-45x-2dl0</link>
      <guid>https://dev.to/joho_todai/torvalds-ai-patch-reaches-rfc-in-one-week-meta-developer-expands-it-to-18-patches-with-45x-2dl0</guid>
      <description>&lt;p&gt;A Meta kernel developer reworked Torvalds' Claude Code-written page-cache patches into an 18-patch RFC series, reporting roughly 4.5x faster ext4 reads on LKML and up to 13x with mitigations disabled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What happened:&lt;/strong&gt; Meta's Kiryl Shutsemau reorganized Torvalds' LLM-generated, 10-patch proof of concept into an 18-patch RFC series and posted it to LKML&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance:&lt;/strong&gt; Roughly 4.5x faster reads on ext4 and 43x on tmpfs; roughly 13x on ext4 with mitigations disabled; almost no change with one thread&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mechanism:&lt;/strong&gt; Deferring the freeing of frequently accessed folios until after an RCU grace period eliminates reference-count operations during reads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Current status:&lt;/strong&gt; The patches remain at the RFC stage, with seven unresolved issues including a 64-bit restriction and a gap in memcg accounting; the Assisted-by: LLM tag has no bearing on mailing-list review criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  From experiment to proposal in one week
&lt;/h2&gt;

&lt;p&gt;Last week, Linus Torvalds &lt;a href="https://joho-todai.com/linus-torvalds-claude-code-linux-kernel-performance/" rel="noopener noreferrer"&gt;used an LLM to write patches improving Linux kernel page-cache read performance (in Japanese)&lt;/a&gt;. The 10-patch series showed &lt;strong&gt;roughly 23x faster reads&lt;/strong&gt;, rising from 13.3 million to 304 million operations per second with 64 threads. As Torvalds himself acknowledged, however, these figures came from an extreme microbenchmark in which every CPU repeatedly reads the same location in the same file. He published a git branch rather than posting individual patches to the mailing list.&lt;/p&gt;

&lt;p&gt;Six days later, on October 19, Meta kernel hacker Kiryl Shutsemau &lt;a href="https://lore.kernel.org/lkml/20261019154913.1765974-1-kas@kernel.org/" rel="noopener noreferrer"&gt;posted an 18-patch RFC series to LKML&lt;/a&gt; based on Torvalds' code.&lt;/p&gt;

&lt;p&gt;Shutsemau is among the developers who have worked on this problem previously, having posted revised patches in October 2025. The new series reorganizes Torvalds' 10 patches with 11 additions of his own. Each of the seven original patches authored by Torvalds carries an &lt;code&gt;Assisted-by: LLM&lt;/code&gt; tag.&lt;/p&gt;

&lt;p&gt;Experimental AI-written code has been refined by another developer and submitted for formal review on the kernel mailing list.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is slow, and why does this make it faster?
&lt;/h2&gt;

&lt;p&gt;When Linux reads a file, data retrieved from disk is retained in the page cache. Subsequent reads of the same data return the in-memory copy without going back to disk.&lt;/p&gt;

&lt;p&gt;The problem arises when multiple CPUs read the same file concurrently. The memory-management units in the page cache, called folios, are managed through reference counts that must be incremented and decremented on every read. These operations use atomic instructions, exclusive updates that guarantee consistency across CPUs. When 64 CPUs try to update the same folio's counter simultaneously, &lt;strong&gt;the cache line keeps bouncing between CPUs&lt;/strong&gt;, and performance collapses.&lt;/p&gt;

&lt;p&gt;The situation is worse on tmpfs, an in-memory file system. Each read acquires a folio lock as well as updating the reference count, so before the patches, even 64 threads delivered &lt;strong&gt;the same speed as one thread&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The patches address this by eliminating reference-count acquisition itself. Frequently accessed, "hot" folios receive the &lt;code&gt;PG_rcu_free&lt;/code&gt; flag. Even after such a folio is freed, its memory is not reused until an RCU grace period, the interval allowing all CPUs to finish their current processing, has elapsed. Within that interval, readers can copy the data without touching the reference count at all.&lt;/p&gt;

&lt;p&gt;The benefit is greater for data that is rarely written. Streaming reads and data accessed only once do not receive the flag, reportedly keeping the amount of memory retained through deferred freeing small.&lt;/p&gt;

&lt;h2&gt;
  
  
  4.5x on ext4, 43x on tmpfs
&lt;/h2&gt;

&lt;p&gt;Shutsemau's benchmarks use a KVM guest with 64 virtual CPUs on an AMD Ryzen Threadripper 7975WX (Zen 4), based on Linux 7.3-rc7.&lt;/p&gt;

&lt;p&gt;Results with 64 threads repeatedly performing 16-byte &lt;code&gt;pread()&lt;/code&gt; calls at offset 0, each thread using its own file descriptor, vary considerably by file system.&lt;/p&gt;

&lt;p&gt;Joho no Todai confirmed that with the default CPU vulnerability mitigations enabled, ext4 improved &lt;strong&gt;roughly 4.5x&lt;/strong&gt;, from around 15 million operations per second to 68.9–70.1 million. tmpfs jumped &lt;strong&gt;roughly 43x&lt;/strong&gt;, from 1.6–1.7 million to 71–72 million operations per second. Given that the folio lock had previously all but eliminated tmpfs's 64-thread parallelism, this jump shows how much potential was unlocked.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://joho-todai.com/torvalds-ai-patch-rfc-meta-ext4/" rel="noopener noreferrer"&gt;Figure omitted — see the original article&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Disabling CPU vulnerability mitigations pushes the figures higher still. ext4 reaches &lt;strong&gt;217M–220M reads per second, roughly 13x faster&lt;/strong&gt;. tmpfs reaches &lt;strong&gt;230M–239M reads per second&lt;/strong&gt;. According to the cover letter, default mitigations add about 400 nanoseconds of user/kernel boundary overhead per read, approximately 170 ns for TSA and 230 ns for SRSO, imposing a performance ceiling.&lt;/p&gt;

&lt;p&gt;XFS and block devices see more modest improvements than ext4, roughly 1.8x and 2x respectively with 64 threads. Both acquire a shared &lt;code&gt;i_rwsem&lt;/code&gt; lock on every read, so lock bouncing remains even after reference-count contention is removed.&lt;/p&gt;

&lt;p&gt;In large-folio read tests using 64 KB reads, 64 threads, and one file, huge tmpfs improves from 96–100k MiB/s to 1370–1390k MiB/s, while ext4 rises from 756–775k MiB/s to 1355–1373k MiB/s, substantial gains in both cases.&lt;/p&gt;

&lt;p&gt;Single-thread read performance shows &lt;strong&gt;no significant change&lt;/strong&gt;, moving from 1.6–1.9 million to 1.7–2 million operations per second. Where reference-count contention does not arise, the patches' overhead also remains close to zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still an RFC
&lt;/h2&gt;

&lt;p&gt;The patches' subject lines say &lt;code&gt;[RFC PATCH]&lt;/code&gt;. In kernel development, RFC, or Request for Comments, means patches seeking feedback on the design direction. They are &lt;strong&gt;not a formal submission for merging&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The cover letter lists seven unresolved issues. The &lt;code&gt;PG_rcu_free&lt;/code&gt; page flag is available only on 64-bit systems and consumes one of the reference bits used by MGLRU (Multi-Generational LRU, a page-reclaim algorithm) on large configurations. Other issues include a grace period during which folios awaiting deferred freeing are not accounted to any memcg (memory cgroup), and delayed freeing of pageblocks after compaction.&lt;/p&gt;

&lt;p&gt;Multiple developers have worked on page-cache reference counting since Matthew Wilcox described it as a buffered-I/O scalability limit several years ago. Shutsemau tackled it himself in 2025, while Ilya Gladyshev pursued another approach through six revisions. The new patches build on the issues those attempts left unresolved.&lt;/p&gt;

&lt;p&gt;The speed with which Torvalds' LLM-written proof of concept became a formal RFC patch series in six days is noteworthy, but from here onward, code design and quality are what matter. The &lt;code&gt;Assisted-by: LLM&lt;/code&gt; tag has no bearing on whether the patches pass mailing-list review.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://joho-todai.com/en/torvalds-ai-patch-rfc-meta-ext4/" rel="noopener noreferrer"&gt;Joho no Todai&lt;/a&gt;. The Japanese original is &lt;a href="https://joho-todai.com/torvalds-ai-patch-rfc-meta-ext4/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
