{"id":"CVE-2026-99111","kind":"vulnerability","aliases":["CVE-2026-99111"],"related":[],"title":"Linux kernel SMB client: concurrent writes during O_TRUNC silently lose data","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix data corruption with concurrent writes and O_TRUNC\n\ncifs_do_truncate() flushes dirty pages with filemap_write_and_wait()\nand truncates the file on the server, but in the old code both\noperations ran without holding i_rwsem or invalidate_lock.  A\nconcurrent buffered write via netfs_perform_write() -- which only\nneeds i_rwsem shared -- could dirty new pages after the flush but\nbefore the local truncation, and those pages would be silently\ndiscarded by cifs_setsize() -> truncate_pagecache().\n\nFix by acquiring inode_lock (exclusive i_rwsem) and\nfilemap_invalidate_lock at the top of cifs_do_truncate(), so the\nentire flush-truncate-resize sequence is atomic with respect to:\n\n  - buffered writes (blocked by exclusive i_rwsem, since\n    netfs_start_io_write takes i_rwsem shared),\n  - read page faults (blocked by exclusive invalidate_lock, since\n    filemap_fault takes it shared),\n  - writeback collection (blocked by netfs_wb_begin/netfs_wb_end\n    around the server truncate and local resize, since\n    netfs_writepages also acquires the wb lock).","summary":"The Linux kernel's CIFS/SMB client could discard freshly written pages when a buffered write raced with a truncate that used O_TRUNC, because the flush, server truncate and local resize ran without the needed locks. The fix takes the inode and invalidate locks across the whole truncate sequence, so the risk is silent data loss rather than code execution.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cifs","file-servers","linux-kernel","runtime","smb-client"],"not_affected_if":["no-cifs-mounts"],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-28T11:17:30+00:00","first_seen_at":"2026-10-28T11:32:34+00:00","triaged_at":"2026-10-28T11:37:43+00:00","updated_at":"2026-10-28T11:37:43+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-28T11:37:43Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"Linux kernel SMB client: concurrent writes during O_TRUNC silently lose data","impact":"low","summary":"The Linux kernel's CIFS/SMB client could discard freshly written pages when a buffered write raced with a truncate that used O_TRUNC, because the flush, server truncate and local resize ran without the needed locks. The fix takes the inode and invalidate locks across the whole truncate sequence, so the risk is silent data loss rather than code execution.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","smb-client","cifs","file-servers"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Concurrently written data is silently discarded from the page cache","analyst_note":"Check the kernel stable backport commits and the affected version ranges in the NVD entry, since the sources give no versions.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["no-cifs-mounts"],"who_is_affected":"Systems mounting SMB/CIFS shares with the Linux kernel cifs client where several processes write to and truncate the same file on the share. Machines that do not mount CIFS shares are not affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000596,"input_tokens":3651,"output_tokens":461,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-99111':15A,18A 'acquir':184C,262C 'across':74B 'also':261C 'around':251C 'atom':210C 'begin/netfs_wb_end':250C 'block':216C,233C,246C 'buffer':43B,146C,214C 'cif':19B,111C,178C,198C 'cifs/smb':34B 'client':4A,29B,35B,101C 'code':88B,133C 'collect':245C 'concurr':5A,106C,145C 'corrupt':104C 'could':36B,158C 'cve':13A,16A 'data':12A,84B,103C 'dirti':115C,159C 'discard':37B,176C 'entir':203C 'exclus':187C,218C,235C 'execut':89B 'fault':232C,240C 'file':21B,125C 'file-serv':20B 'filemap':118C,191C,239C 'fix':67B,102C,182C 'flush':55B,114C,164C,205C 'flush-truncate-res':204C 'follow':95C 'fresh':38B 'hold':138C 'inod':70B,185C 'invalid':72B,142C,192C,236C 'io':224C 'kernel':2A,25B,32B,93C 'linux':1A,24B,31B,92C 'linux-kernel':23B 'local':59B,168C,256C 'lock':65B,73B,143C,186C,193C,237C,265C 'lose':11A 'loss':85B 'need':64B,154C 'netf':149C,222C,248C,259C 'new':160C 'o':8A,51B,109C 'old':132C 'oper':135C 'page':40B,116C,161C,172C,231C 'pagecach':181C 'perform':150C 'race':45B 'ran':61B,136C 'rather':86B 'read':230C 'resiz':60B,207C,257C 'resolv':99C 'respect':212C 'risk':81B 'runtim':26B 'rwsem':140C,156C,189C,220C,228C 'sequenc':78B,208C 'server':22B,56B,128C,253C 'setsiz':179C 'share':157C,229C,243C 'silent':10A,83B,175C 'sinc':221C,238C,258C 'smb':3A,28B,100C 'smb-client':27B 'start':223C 'take':68B,226C,241C 'top':196C 'trunc':9A,52B,110C 'truncat':48B,57B,77B,113C,123C,169C,180C,200C,206C,254C 'use':50B 'via':148C 'vulner':96C 'wait':121C 'wb':249C,264C 'whole':76B 'without':62B,137C 'would':173C 'write':6A,44B,107C,119C,147C,151C,215C,225C 'writeback':244C 'writepag':260C 'written':39B","nicknames":[],"mitigations":[],"who_affected":"Systems mounting SMB/CIFS shares with the Linux kernel cifs client where several processes write to and truncate the same file on the share. Machines that do not mount CIFS shares are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T11:17:30+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99111","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99111","severity":null,"published_at":"2026-10-28T11:17:30+00:00","modified_at":"2026-10-28T11:17:30+00:00","first_seen_at":"2026-10-28T11:32:34+00:00","fetched_at":"2026-10-28T11:32:34+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}