CVE-2025-38139: netfs: Fix oops in write-retry from mis-resetting the subreq iterator
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix oops in write-retry from mis-resetting the subreq iterator
Fix the resetting of the subrequest iterator in netfs_retry_write_stream()
to use the iterator-reset function as the iterator may have been shortened
by a previous retry. In such a case, the amount of data to be written by
the subrequest is not "subreq->len" but "subreq->len -
subreq->transferred".
Without this, KASAN may see an error in iov_iter_revert():
BUG: KASAN: slab-out-of-bounds in iov_iter_revert lib/iov_iter.c:633 [inline]
BUG: KASAN: slab-out-of-bounds in iov_iter_revert+0x443/0x5a0 lib/iov_iter.c:611
Read of size 4 at addr ffff88802912a0b8 by task kworker/u32:7/1147
CPU: 1 UID: 0 PID: 1147 Comm: kworker/u32:7 Not tainted 6.15.0-rc6-syzkaller-00052-g9f35e33144ae #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Workqueue: events_unbound netfs_write_collection_worker
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:408 [inline]
print_report+0xc3/0x670 mm/kasan/report.c:521
kasan_report+0xe0/0x110 mm/kasan/report.c:634
iov_iter_revert lib/iov_iter.c:633 [inline]
iov_iter_revert+0x443/0x5a0 lib/iov_iter.c:611
netfs_retry_write_stream fs/netfs/write_retry.c:44 [inline]
netfs_retry_writes+0x166d/0x1a50 fs/netfs/write_retry.c:231
netfs_collect_write_results fs/netfs/write_collect.c:352 [inline]
netfs_write_collection_worker+0x23fd/0x3830 fs/netfs/write_collect.c:374
process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3238
process_scheduled_works kernel/workqueue.c:3319 [inline]
worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400
kthread+0x3c2/0x780 kernel/kthread.c:464
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:153
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Security readout for executives and security teams
Plain-English summary
A Linux netfs write-retry bookkeeping error can make the kernel read beyond an allocated buffer and crash. The supplied record rates it critical, but it does not establish that ordinary network access alone can trigger the flaw. Systems using affected kernels and netfs-backed filesystem writes deserve prompt review.
Executive priority
Treat this as an urgent kernel-maintenance issue where affected netfs functionality is used, while avoiding assumptions of widespread remote compromise. Establish exact vendor exposure first, then patch critical systems promptly. Other systems can follow risk-based maintenance once their kernel fix status and workload relevance are confirmed.
Technical view
netfs_retry_write_stream() incorrectly reset a shortened subrequest iterator using the original subrequest length instead of accounting for bytes already transferred. During a later write retry, iov_iter_revert() could access beyond the slab allocation. KASAN reproduced the defect in a syzkaller kernel worker. The referenced Linux stable commits correct the iterator reset.
Likely exposure
The bundle identifies Linux kernel versions around 6.12 through 6.16 as affected, but its flattened version list does not clearly preserve exact fixed-version boundaries. Exposure depends on whether a deployed kernel contains the vulnerable netfs code and lacks the referenced fix or a distribution backport. Prioritize systems performing netfs-backed writes.
Exploitation context
The supplied evidence shows a syzkaller/KASAN-triggered slab-out-of-bounds read and possible kernel oops. KEV is false, and no cited source establishes active exploitation, a public exploit, reliable remote reachability, privilege escalation, or data compromise. The CVSS network vector should not be treated alone as proof of practical remote exploitation.
Researcher notes
The demonstrated failure occurs in asynchronous netfs write collection after an iterator was shortened by a prior retry. The record supports an out-of-bounds read and oops, but not the supplied CVSS confidentiality, integrity, and availability impacts individually. Exact vulnerable ranges, trigger prerequisites, and security consequences remain insufficiently documented in the bundle.
Mitigation direction
Apply a vendor kernel update containing the referenced fix or an equivalent backport.
Check distribution advisories for exact affected and corrected package versions.
Prioritize internet-facing and business-critical systems using netfs-backed filesystem writes.
If updates are unavailable, obtain vendor guidance before adopting temporary operational workarounds.
Validation and detection
Inventory kernel versions and distribution package revisions across potentially exposed systems.
Verify whether kernel sources or vendor packages include one of the referenced stable fixes.
Review kernel logs for iov_iter_revert, netfs write-retry, KASAN, or unexplained oops messages.
Run approved filesystem write-retry regression tests in an isolated non-production environment after updating.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-38139 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
4Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.