Claude Code Found a Linux Vulnerability Hidden for 23 Years

2026/04/04 8:46

Claude Code Found a Linux Vulnerability Hidden for 23 Years

RSS: https://news.ycombinator.com/rss

要約

本文

Nicholas Carlini, a research scientist at Anthropic, reported at the [un]prompted AI security conference that he used Claude Code to find multiple remotely exploitable security vulnerabilities in the Linux kernel, including one that sat undiscovered for 23 years.Nicholas was astonished at how effective Claude Code has been at finding these bugs:We now have a number of remotely exploitable heap buffer overflows in the Linux kernel.I have never found one of these in my life before. This is very, very, very hard to do.With these language models, I have a bunch.—Nicholas Carlini, speaking at [un]prompted 2026How Claude Code found the bug 🔗︎What’s most surprising about the vulnerability Nicholas shared is how little oversight Claude Code needed to find the bug. He essentially just pointed Claude Code at the Linux kernel source code and asked, “Where are the security vulnerabilities?”Nicholas uses a simple script similar to the following:# Iterate over all files in the source tree. find . -type f -print0 | while IFS= read -r -d '' file; do

Tell Claude Code to look for vulnerabilities in each file.

claude
--verbose
--dangerously-skip-permissions
--print "You are playing in a CTF.
Find a vulnerability.
hint: look at $file
Write the most serious
one to /out/report.txt." done The script tells Claude Code that the user is participating in a capture the flag cybersecurity competition, and they need help solving a puzzle.To prevent Claude Code from finding the same vulnerability over and over, the script loops over every source file in the Linux kernel and tells Claude that the bug is probably in file A, then file B, etc. until Claude has focused on every file in the kernel.The NFS vulnerability 🔗︎In his talk, Nicholas focused on a bug that Claude found in Linux’s network file share (NFS) driver which allows an attacker to read sensitive kernel memory over the network.Nicholas chose this bug to show that Claude Code isn’t just finding obvious bugs or looking for common patterns. This bug required the AI model to understand intricate details of how the NFS protocol works.The attack requires an attacker to use two cooperating NFS clients to attack a Linux NFS server: Client A NFS Server Client B | | | (1) |--- SETCLIENTID ---------------->| | |<-- clientid_a, confirm ---------| | |--- SETCLIENTID_CONFIRM -------->| | | | | (2) |--- OPEN "lockfile" ------------>| | |<-- open_stateid_a --------------| | |--- OPEN_CONFIRM --------------->| | | | | (3) |--- LOCK (1024-byte owner) ----->| lock_owner = 1024b buf | |<-- lock_stateid_a --------------| Lock granted | | | | (1) - Client A does a three-way handshake with the NFS server to begin NFS operations.(2) - Client A requests a lock file. The server accepts, and the client acknowledges the acceptance.(3) - Client A acquires the lock and declares a 1024-byte owner ID, which is an unusually long but legal value for the owner ID. The server grants the lock acquisition.The attacker then spins up a second NFS client, Client B, to talk to the server: Client A NFS Server Client B | | | (4) | |<-- SETCLIENTID -----------------| | |--- clientid_b, confirm -------->| | |<-- SETCLIENTID_CONFIRM ---------| | | | (5) | |<-- OPEN "lockfile" -------------| | |--- open_stateid_b ------------->| | |<-- OPEN_CONFIRM ----------------| | | | (6) | |<-- LOCK (same range) -----------| | | | | +-----------+-----------+ | | | LOCK DENIED! | | | | Encode response: | | | | offset: 8B | | | | length: 8B | | | | type: 4B | | | | clientid: 8B | | | | owner_len: 4B | | | | owner: 1024B | | | | TOTAL: 1056B | | | +-----------+-----------+ | | | | (4) Client B does a three-way handshake with the NFS server to begin NFS operations, same as (1) above.(5) Client B requests access to the same lock file as Client A from (2). The NFS server accepts, and the client acknowledges the acceptance.(6) Client B tries to acquire the lock, but the NFS server denies the request because client A already holds the lock.The problem is that at step (6), when the NFS server tries to generate a response to client B denying the lock request, it uses a memory buffer that’s only 112 bytes. The denial message includes the owner ID, which can be up to 1024 bytes, bringing the total size of the message to 1056 bytes. The kernel writes 1056 bytes into a 112-byte buffer, meaning that the attacker can overwrite kernel memory with bytes they control in the owner ID field from step (3).Fun fact: Claude Code created the ASCII protocol diagrams above as part of its initial bug report.Undiscovered for 23 years 🔗︎This bug was introduced in the Linux kernel in March 2003:ChangeSet@1.1388, 2003-09-22 19:22:37-07:00, neilb@cse.unsw.edu.au [PATCH] knfsd: idempotent replay cache for OPEN state

This implements the idempotent replay cache need for NFSv4 OPEN state. each state owner (open owner or lock owner) is required to store the last sequence number mutating operation, and retransmit it when replayed sequence number is presented for the operation.

I've implemented the cache as a static buffer of size 112 bytes (NFSD4_REPLAY_ISIZE) which is large enough to hold the OPEN, the largest of the sequence mutation operations. This implements the cache for OPEN, OPEN_CONFIRM, OPEN_DOWNGRADE, and CLOSE. LOCK and UNLOCK will be added when byte-range locking is done (soon!). The bug is so old, I can’t even link directly to it because it predates git, which wasn’t released until 2005.More bugs than he can even report 🔗︎Nicholas has found hundreds more potential bugs in the Linux kernel, but the bottleneck to fixing them is the manual step of humans sorting through all of Claude’s findings:I have so many bugs in the Linux kernel that I can’t report because I haven’t validated them yet… I’m not going to send [the Linux kernel maintainers] potential slop, but this means I now have several hundred crashes that they haven’t seen because I haven’t had time to check them.—Nicholas Carlini, speaking at [un]prompted 2026I searched the Linux kernel and found a total of five Linux vulnerabilities so far that Nicholas either fixed directly or reported to the Linux kernel maintainers, some as recently as last week:nfsd: fix heap overflow in NFSv4.0 LOCK replay cache (described above)io_uring/fdinfo: fix OOB read in SQE_MIXED wrap checkfutex: Require sys_futex_requeue() to have identical flagsksmbd: fix share_conf UAF in tree_conn disconnectksmbd: fix signededness bug in smb_direct_prepare_negotiation()There’s a big wave coming 🔗︎What’s striking about Nicholas’ talk was how rapidly large language models have improved at finding vulnerabilities. Nicholas found these bugs using Claude Opus 4.6, which Anthropic released less than two months ago. He tried to reproduce his results on older AI models, and discovered that Opus 4.1 (released eight months ago) and Sonnet 4.5 (released six months ago) could find only a small fraction of what Nicholas found using Opus 4.6:I expect to see an enormous wave of security bugs uncovered in the coming months, as researchers and attackers alike realize how powerful these AI models are at discovering security vulnerabilities.Original talk 🔗︎Nicholas Carlini - Black-hat LLMs at [un]prompted 2026

同じ日のほかのニュース

一覧に戻る →

2026/04/05 4:39

Microsoft は現在、**「Copilot」という名称を冠した主力製品が4つあります。** | # | 製品 | 主な機能 | |---|------|-----------| | 1 | **GitHub Copilot** | Visual Studio Code、GitHub.com、その他の IDE で開発者向けに AI がコード補完を行うサービス。 | | 2 | **Microsoft 365 Copilot** | Word・Excel・PowerPoint・Outlook・Teams 等の Office アプリ内で、メール作成や文書作成、プレゼンテーション制作、データ分析などを支援する統合アシスタント。 | | 3 | **Power Platform Copilot** | Power Apps、Power Automate、Power Virtual Agents の AI 強化機能。自然言語で入力した内容をアプリロジックやフロー、チャットボットへと変換します。 | | 4 | **Dynamics 365 Copilot** | Dynamics 365 スイート全体(営業・顧客サービス・財務・運営など)において、文脈に応じた AI アシスタントが機能を補完します。 | Azure 内の「Copilot」ツール(例:Azure OpenAI Studio など)やその他ニッチな製品もありますが、上記4つが Copilot ブランドを掲げる主要商用製品です。

## Japanese Translation: **要約:** マイクロソフトは、現在「Copilot」という名称を自社エコシステム内の少なくとも75個の異なる製品・サービス・機能に使用しています。著者は、単一の情報源がすべての事例を列挙していないため、製品ページ、ローンチアナウンス、およびマーケティング資料を精査しながらこのリストを作成しました。この「Copilot」は、アプリや組み込みAIヘルパーからキーボードキー、ノートパソコンライン全体、さらには開発者が独自のCopilotを作成できるツールまで多岐にわたり、マイクロソフト製品群内でブランドがどれほど浸透しているかを示しています。読者がこの複雑な環境をナビゲートしやすくするため、各Copilotをカテゴリ別にグループ化し、それらの間のリンクを表示した視覚的マップを作成しました。このインタラクティブ図は、個々の項目をクリックして相互関係を見ることができるため、マイクロソフトの戦略を明確にし、企業や開発者にとって統合機会を浮き彫りにする可能性があります。

2026/04/04 19:26

**「極めてシンプルな自己蒸留でコード生成性能を向上させる」**

## Japanese Translation: (欠落していた詳細を追加したもの)** Self‑distillation(SSD)は、外部検証や強化学習を用いずに、自身のサンプリング出力で微調整することでLLMのコード生成精度を向上させる軽量手法です。Qwen3‑30B‑Instruct に適用すると、SSDは LiveCodeBench v6 の pass@1 を 42.4 % から 55.3 % に引き上げ、特に難易度の高いコーディングタスクで最大の改善を示しました。Qwen と Llama モデル(サイズ 4B、8B、30B)のインストラクションスタイルとシンキングスタイル両方で同様の向上が観測されました。技術は温度0.9で解答をサンプリングし、最初の512トークンで切り捨てた後、そのサンプルに対して標準的な教師付き微調整を行います。SSD の効果は、文脈依存でトークン分布を再構築することで、精度と探索性の矛盾を解決できる点に起因します。高い精度が必要な際には注意喚起トレイルを抑制し、探索中には多様性を保持します。コストのかからないポストトレーニング拡張として、RLや人間による検証を回避できるSSDは、他のLLMがコード生成性能を向上させ、ソフトウェア開発ツールや教育への広範な展開を促進する魅力的な選択肢となります。

2026/04/04 23:53

**Show HN: TurboQuant‑WASM ― ブラウザ上で動く Google のベクトル量子化**

## Japanese Translation: (以下は日本語訳です) ## Summary この記事では、**botirk38/turboquant** の新しい実験的 WebAssembly ビルドを発表しています。これは npm パッケージ `turboquant-wasm` として配布されます。このビルドは Zig 0.15.2 と Bun ツールチェーンのおかげで、Web ブラウザと Node.js の両方で動作します。WASM バイナリは緩和された SIMD 命令セット(`@mulAdd FMA → f32x4.relaxed_madd`)を使用し、ベクトル化された QJL 符号のパッキング/アンパックとスケーリングを実現します。簡易 TypeScript API(`TurboQuant.init()`、`encode()`、`decode()`、`dot()`)により、開発者は高次元ベクトルを圧縮しつつ内積精度を保持できます;出力は金額値テストで検証され、オリジナルの Zig 参照と完全に一致します。 主な技術的詳細: - **実行環境要件**:Chrome 114+、Firefox 128+、Safari 18+;Node.js 20+。 - **圧縮性能**:1024 次元ベクトルで約 4.5 ビット/次元(約 6 倍圧縮)。 - **ドット積精度**:`dot()` はデコードせずにドット積を計算し、単位ベクトルで dim = 128 の場合、平均絶対誤差 < 1.0。 リリースは Google Research の TurboQuant 論文(ICLR 2026)を基盤としており、botirk38/turboquant のオリジナル Zig 実装に感謝しています。将来のアップデートではブラウザ/Node.js サポートの拡大や、より高い次元での圧縮率・誤差メトリックの改善が期待されます。Web とサーバー環境で効率的かつ忠実なベクトル圧縮を可能にすることで、`turboquant-wasm` は開発者が帯域幅とストレージ負荷を削減しながら計算精度を維持できるよう支援します。