CVE-2026-64067 (GCVE-0-2026-64067)
Vulnerability from cvelistv5 – Published: 2026-07-19 15:39 – Updated: 2026-08-05 12:38
VLAI
EPSS
VEX
Title
netfs: Fix missing barriers when accessing stream->subrequests locklessly
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix missing barriers when accessing stream->subrequests locklessly
The list of subrequests attached to stream->subrequests is accessed without
locks by netfs_collect_read_results() and netfs_collect_write_results(),
and then they access subreq->flags without taking a barrier after getting
the subreq pointer from the list. Relatedly, the functions that build the
list don't use any sort of write barrier when constructing the list to make
sure that the NETFS_SREQ_IN_PROGRESS flag is perceived to be set first if
no lock is taken.
Fix this by:
(1) Add a new list_add_tail_release() function that uses a release barrier
to set the pointer to the new member of the list.
(2) Add a new list_first_entry_or_null_acquire() function that uses an
acquire barrier to read the pointer to the first member in a list (or
return NULL).
(3) Use list_add_tail_release() when adding a subreq to ->subrequests.
(4) Use list_first_entry_or_null_acquire() when initially accessing the
front of the list (when an item is removed, the pointer to the new
front iterm is obtained under the same lock).
Severity
9.8 (Critical)
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
288ace2f57c9d06dd2e42bd80d03747d879a4068 , < 293a4532c36f38458e38b8879b174ab797718b9d
(git)
Affected: 288ace2f57c9d06dd2e42bd80d03747d879a4068 , < b5782e2d462c028096f922abca46318cec890670 (git) |
guessed | |
| Linux | Linux |
Affected:
6.10
Unaffected: 0 , < 6.10 (semver) Unaffected: 7.0.11 , ≤ 7.0.* (semver) Unaffected: 7.1 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c",
"fs/netfs/misc.c",
"fs/netfs/read_collect.c",
"fs/netfs/write_collect.c",
"fs/netfs/write_issue.c",
"include/linux/list.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "293a4532c36f38458e38b8879b174ab797718b9d",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "b5782e2d462c028096f922abca46318cec890670",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c",
"fs/netfs/misc.c",
"fs/netfs/read_collect.c",
"fs/netfs/write_collect.c",
"fs/netfs/write_issue.c",
"include/linux/list.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix missing barriers when accessing stream-\u003esubrequests locklessly\n\nThe list of subrequests attached to stream-\u003esubrequests is accessed without\nlocks by netfs_collect_read_results() and netfs_collect_write_results(),\nand then they access subreq-\u003eflags without taking a barrier after getting\nthe subreq pointer from the list. Relatedly, the functions that build the\nlist don\u0027t use any sort of write barrier when constructing the list to make\nsure that the NETFS_SREQ_IN_PROGRESS flag is perceived to be set first if\nno lock is taken.\n\nFix this by:\n\n (1) Add a new list_add_tail_release() function that uses a release barrier\n to set the pointer to the new member of the list.\n\n (2) Add a new list_first_entry_or_null_acquire() function that uses an\n acquire barrier to read the pointer to the first member in a list (or\n return NULL).\n\n (3) Use list_add_tail_release() when adding a subreq to -\u003esubrequests.\n\n (4) Use list_first_entry_or_null_acquire() when initially accessing the\n front of the list (when an item is removed, the pointer to the new\n front iterm is obtained under the same lock)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the netfs client library used by CIFS/SMB, Ceph, 9p, AFS, and NFS clients; a remote file server controls when read/write completions arrive over the network and can time responses to hit the lockless subrequest list race during collection.\nAC:L - The attacker controls both sides of the concurrency (issuing concurrent reads/writes and timing remote completions); on weakly-ordered architectures the missing barriers can cause deterministic misordering without relying on rare external conditions.\nPR:N - A malicious or compromised remote SMB/Ceph/NFS server needs no local privileges on the victim; exploitation only requires the victim system to perform I/O against an already-mounted network filesystem share.\nUI:N - On servers and enterprise systems with persistent fstab/autofs mounts, automated processes (writeback, readahead, backup daemons) trigger netfs I/O without live end-user action at exploit time.\nS:U - Impact is kernel memory corruption and privilege escalation within the same kernel security boundary; this is not a VM escape or cross-authority boundary bypass.\nC:H - Premature removal and freeing of in-flight subrequests is a use-after-free; the collector may read freed `netfs_io_subrequest` memory and stale counters, enabling arbitrary kernel memory disclosure.\nI:H - The UAF and concurrent access to subrequest fields while I/O handlers still run can corrupt heap metadata and subrequest state, providing a path to arbitrary kernel writes or code execution.\nA:H - Freeing active subrequests while SMB/Ceph completion handlers still reference them can cause kernel oops, BUG, or panic from use-after-free and list corruption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:38:51.145Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/293a4532c36f38458e38b8879b174ab797718b9d"
},
{
"url": "https://git.kernel.org/stable/c/b5782e2d462c028096f922abca46318cec890670"
}
],
"title": "netfs: Fix missing barriers when accessing stream-\u003esubrequests locklessly",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64067",
"datePublished": "2026-07-19T15:39:44.660Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-08-05T12:38:51.145Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-64067",
"date": "2026-10-03",
"epss": "0.00427",
"percentile": "0.34749"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c",
"fs/netfs/misc.c",
"fs/netfs/read_collect.c",
"fs/netfs/write_collect.c",
"fs/netfs/write_issue.c",
"include/linux/list.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "293a4532c36f38458e38b8879b174ab797718b9d",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "b5782e2d462c028096f922abca46318cec890670",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c",
"fs/netfs/misc.c",
"fs/netfs/read_collect.c",
"fs/netfs/write_collect.c",
"fs/netfs/write_issue.c",
"include/linux/list.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.10"
},
{
"lessThan": "6.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.0.*",
"status": "unaffected",
"version": "7.0.11",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "3D58F7F7-D3D4-4428-9A39-E525E5BBCEA0",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*",
"matchCriteriaId": "B1EF7059-E670-45F4-B422-54C40FA86390",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*",
"matchCriteriaId": "0D38F0BF-A728-4133-A358-D44A2F7EE6D6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:*",
"matchCriteriaId": "EC732D08-5F7B-46D9-B154-E60C7F4F0A97",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:*",
"matchCriteriaId": "E5910A9D-F60A-409A-B486-FE66BFEBA9B9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix missing barriers when accessing stream-\u003esubrequests locklessly\n\nThe list of subrequests attached to stream-\u003esubrequests is accessed without\nlocks by netfs_collect_read_results() and netfs_collect_write_results(),\nand then they access subreq-\u003eflags without taking a barrier after getting\nthe subreq pointer from the list. Relatedly, the functions that build the\nlist don\u0027t use any sort of write barrier when constructing the list to make\nsure that the NETFS_SREQ_IN_PROGRESS flag is perceived to be set first if\nno lock is taken.\n\nFix this by:\n\n (1) Add a new list_add_tail_release() function that uses a release barrier\n to set the pointer to the new member of the list.\n\n (2) Add a new list_first_entry_or_null_acquire() function that uses an\n acquire barrier to read the pointer to the first member in a list (or\n return NULL).\n\n (3) Use list_add_tail_release() when adding a subreq to -\u003esubrequests.\n\n (4) Use list_first_entry_or_null_acquire() when initially accessing the\n front of the list (when an item is removed, the pointer to the new\n front iterm is obtained under the same lock)."
}
],
"id": "CVE-2026-64067",
"lastModified": "2026-09-03T15:34:39.507",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"exploitabilityScore": 3.9,
"impactScore": 5.9,
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"type": "Secondary"
}
]
},
"published": "2026-07-19T16:17:47.290",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/293a4532c36f38458e38b8879b174ab797718b9d"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"tags": [
"Patch"
],
"url": "https://git.kernel.org/stable/c/b5782e2d462c028096f922abca46318cec890670"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-667"
}
],
"source": "nvd@nist.gov",
"type": "Primary"
}
]
}
},
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-07-20T16:47:59+00:00",
"cve": "CVE-2026-64067",
"id": "CVE-2026-64067",
"initial_release_date": "2026-07-19T00:00:00+00:00",
"product_status:known_affected": "76",
"product_status:known_not_affected": "198",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: netfs: Fix missing barriers when accessing stream-\u003esubrequests locklessly",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64067.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "moderate",
"current_release_date": "2026-09-15T01:56:30Z",
"cve": "CVE-2026-64067",
"id": "CVE-2026-64067",
"initial_release_date": "2026-07-21T13:00:18Z",
"product_status:known_affected": "29",
"product_status:known_not_affected": "345",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2026-64067",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64067.json",
"version": "5"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…