GHSA-8J83-QM9M-M369
Vulnerability from github – Published: 2026-09-11 21:31 – Updated: 2026-09-13 09:32In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix null dereference in nfsd4_setattr for deleg timestamp attrs
When a SETATTR request includes FATTR4_WORD2_TIME_DELEG_ACCESS or FATTR4_WORD2_TIME_DELEG_MODIFY in the attribute bitmap, nfsd4_setattr() sets deleg_attrs=true and calls nfs4_preprocess_stateid_op() to validate the stateid.
If the client supplies the NFSv4 "one stateid" (all-0xFF bytes),
check_special_stateids() returns nfs_ok without populating the output
nfs4_stid pointer, because the special-stateid path in
nfs4_preprocess_stateid_op() jumps to done: with s==NULL, and the
"if (s)" block that would set *cstid is skipped. The local variable st
remains NULL.
Back in nfsd4_setattr(), the if (deleg_attrs) block then unconditionally dereferences st->sc_type (at offset 4 from NULL), causing a kernel oops.
This is remotely triggerable by any NFSv4 client: send COMPOUND [PUTROOTFH, SETATTR(ONE_STATEID, {bmval2=FATTR4_WORD2_TIME_DELEG_ACCESS, ...})]. No authentication, delegation, or prior state is required.
Fix by adding a NULL check before the dereference. A special stateid is not a delegation stateid, so the existing nfserr_bad_stateid return value is already correct; we only need to guard the pointer dereference itself.
{
"affected": [],
"aliases": [
"CVE-2026-89679"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-11T20:19:54Z",
"severity": "HIGH"
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix null dereference in nfsd4_setattr for deleg timestamp attrs\n\nWhen a SETATTR request includes FATTR4_WORD2_TIME_DELEG_ACCESS or\nFATTR4_WORD2_TIME_DELEG_MODIFY in the attribute bitmap, nfsd4_setattr()\nsets deleg_attrs=true and calls nfs4_preprocess_stateid_op() to validate\nthe stateid.\n\nIf the client supplies the NFSv4 \"one stateid\" (all-0xFF bytes),\ncheck_special_stateids() returns nfs_ok without populating the output\nnfs4_stid pointer, because the special-stateid path in\nnfs4_preprocess_stateid_op() jumps to done: with s==NULL, and the\n\"if (s)\" block that would set *cstid is skipped. The local variable `st`\nremains NULL.\n\nBack in nfsd4_setattr(), the if (deleg_attrs) block then unconditionally\ndereferences st-\u003esc_type (at offset 4 from NULL), causing a kernel oops.\n\nThis is remotely triggerable by any NFSv4 client: send COMPOUND [PUTROOTFH,\nSETATTR(ONE_STATEID, {bmval2=FATTR4_WORD2_TIME_DELEG_ACCESS, ...})].\nNo authentication, delegation, or prior state is required.\n\nFix by adding a NULL check before the dereference. A special stateid is\nnot a delegation stateid, so the existing nfserr_bad_stateid return value\nis already correct; we only need to guard the pointer dereference itself.",
"id": "GHSA-8j83-qm9m-m369",
"modified": "2026-09-13T09:32:27Z",
"published": "2026-09-11T21:31:36Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-89679"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/3c5119b799a7f57db332b2c31e806de16c869f0f"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/3c896db123892256fd39af0ee8c2d02c63539983"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/fe456c8c0931bb3e8a03d429920e87fd85747fba"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"type": "CVSS_V3"
}
]
}
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.
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.
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.