Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessMount errored NTFS volume read-write
-
DeliveryPerform write then call sync()
-
ExploitDirty bit cleared despite recorded errors
-
ExecutionVolume seen as clean, recovery skipped
-
ImpactUnderlying corruption left unrepaired
Vulnerability Assessment
| Exploitation Conditions | Exploitation requires a Linux host mounting an NTFS volume read-write using the kernel NTFS driver, where that volume has already recorded a volume error (the description's reproducer is a $MFTMirr that does not match $MFT, which sets the error flag while leaving the mount read-write); a subsequent write plus a sync() then wrongly clears the on-disk dirty bit (observed as flags 0x0000 without the fix versus 0x0001 with it). Limiting factors: local access only (AV:L), low privileges but still authenticated (PR:L), the NTFS driver must be in use and the volume mounted read-write, and a pre-existing filesystem error must be present - the error condition is largely environmental rather than attacker-controllable, which sharply reduces practical exploitability. |
| Impact | All signals converge on this being a LOW-priority, low-real-world-risk issue. The provided CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 5.5 MEDIUM) describes a local, authenticated, availability-only defect with no confidentiality or integrity impact in CVSS terms. EPSS reinforces this: 0.14% probability at the 3rd percentile indicates virtually no observed exploitation interest. There is no CISA KEV listing and no public exploit code referenced, so exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was provided. The CWE is listed as N/A. One notable tension: the input Tags label this 'Information Disclosure,' but the CVSS vector sets C:N and the description describes a filesystem-recovery/data-integrity defect (dirty bit cleared so corruption is never repaired) - the tag contradicts the vector and the description, so treat 'Information Disclosure' as mislabeled. The realistic harm is silent non-repair of an already-damaged NTFS volume, a reliability/data-safety bug rather than an attacker-driven exploit; it is not a priority for emergency patching outside environments that mount NTFS read-write under Linux. |
| Exploit ScenarioDerived | On a Linux host that has an NTFS volume mounted read-write, the volume records an internal error (for example $MFTMirr not matching $MFT). A local user with write access then performs any write and a sync(), which causes ntfs_sync_fs() to clear the on-disk dirty bit unconditionally, so the volume is marked clean despite the recorded error and recovery is never triggered. No public exploit code exists; this is a local, availability/data-integrity condition rather than a remotely weaponizable flaw. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
The Linux kernel's legacy NTFS driver can silently mark a damaged volume as clean, suppressing the recovery that would otherwise repair on-disk errors. Unlike ntfs_put_super() and the remount-read-only path, which clear the dirty bit only when no volume errors are recorded, ntfs_sync_fs() resets it unconditionally, so a write followed by a sync() on a volume whose $MFTMirr does not match $MFT leaves the on-disk flags at 0x0000 instead of 0x0001 and the volume is later treated as needing no recovery. Exploitation is local and requires an authenticated user with low privileges on a host that mounts NTFS read-write with a pre-existing filesystem error; the error condition is largely environmental rather than attacker-controlled, so real-world risk is LOW, no public exploit is identified at time of analysis, and EPSS is 0.14% (3rd percentile).
RemediationAI
Vendor-released patch: upgrade to a kernel containing commits ca1f9933eff777a604eb664d0f9ae433b8664cbf and 0e4c839905418d55bafe571a92533a1d1ac7b0a8, corresponding to the stable releases identified as Linux 7.2.7, Linux 7.3-rc2, and the listed 7.1 branch update; distributions should track the backport in their own kernel package rather than assuming an upstream tag. Where patching must be deferred, the most effective compensating control is to mount affected NTFS volumes read-only, which prevents the write-then-sync() sequence from clearing the dirty bit at all - the trade-off is loss of write access for that volume. Alternatively, avoid the legacy in-tree NTFS driver by using the ntfs3 driver or userspace ntfs-3g for volumes that must be writable, accepting that their error-handling and feature support differ from the legacy driver. Because the flaw only matters on volumes that already record a volume error, operators should also treat any NTFS volume with a known inconsistency as untrusted: unmount it, run a filesystem check (ntfsfix/chkdsk) to clear the error state before resuming normal use, and verify the on-disk dirty bit shows as set (flags 0x0001) after an error condition rather than 0x0000. Advisory and commit details are available at https://git.kernel.org/stable/c/ca1f9933eff777a604eb664d0f9ae433b8664cbf and https://nvd.nist.gov/vuln/detail/CVE-2026-98138.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This issue lives in the Linux kernel's in-tree legacy NTFS driver (distinct from the newer ntfs3 driver), specifically in the filesystem sync path. NTFS records volume health in the $Volume metadata through a dirty bit; when the driver detects an inconsistency it sets NVolErrors(vol) and normally leaves the volume marked dirty so that a subsequent mount triggers recovery. ntfs_put_super() and the remount-read-only code honor that convention, but ntfs_sync_fs() was clearing the dirty flag without consulting NVolErrors(), effectively erasing the signal that the filesystem needs repair. The reproducer is a volume whose $MFTMirr does not match $MFT: the error flag is set while the mount stays read-write, and after a write plus sync() the on-disk volume flags read 0x0000 without the fix versus 0x0001 with the guard in place. The input lists no CWE, but the defect is best described as an improper check of an exceptional condition / incorrect state handling in the sync path, with integrity of the on-disk health metadata and the availability of filesystem recovery as the affected properties; the assessed vector (AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H) reflects a local, authenticated trigger with high complexity and availability-only impact, and should be preferred over the higher-scored AV:L/AC:L variant, since a pre-existing filesystem corruption is required.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Local, low-privilege trigger (AV:L/PR:L), but requires a pre-existing recorded volume error so AC:H; no confidentiality/integrity in CVSS terms, availability/data-safety impact only (A:H).
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
In the Linux kernel, the following vulnerability has been resolved:
ntfs: do not mark the volume clean in sync_fs when errors were recorded
ntfs_put_super() and the remount-read-only path both clear the dirty bit only when NVolErrors(vol) is false. ntfs_sync_fs() clears it unconditionally, so any sync() on a volume that recorded an error marks that volume clean. A volume without this set is then seen as not needing recovery and it does not run one, so whatever went wrong is never repaired.
This change skips resetting the dirty bit when there are volume errors.
Reproduced on a volume whose $MFTMirr does not match $MFT, which sets the error flag while leaving the mount read-write: after a write and a sync, the on-disk volume flags read 0x0000 with this driver and 0x0001 with the guard in place.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
EUVD-2026-86969
GHSA-hj9h-73j9-cr9g
NVD
CVE.org
EPSS
Exploit-DB