GHSA-4J65-QCR2-QW3X
Vulnerability from github – Published: 2026-09-16 12:30 – Updated: 2026-09-16 12:30In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: guard against NULL restore_mqd in CRIU queue restore
Both create_queue_cpsch() and create_queue_nocpsch() unconditionally call mqd_mgr->restore_mqd() when a CRIU restore is in progress (qd != NULL), with no NULL guard. On any system where restore_mqd is not implemented for the given queue type, a user holding CAP_CHECKPOINT_RESTORE can trigger a kernel NULL pointer dereference and panic the machine by issuing KFD_IOC_CRIU_OP_RESTORE with a crafted queue restore object. Note that checkpoint_mqd is likewise unimplemented on GFX12, so no legitimate CRIU image can reach this path — only a hand-crafted restore payload.
Add a NULL guard for restore_mqd immediately after mqd_mgr is resolved, unwinding via the existing error labels and returning -EOPNOTSUPP if the callback is not implemented. This mirrors the existing checkpoint_mqd guard in checkpoint_mqd().
{
"affected": [],
"aliases": [
"CVE-2026-89807"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-16T11:16:45Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: guard against NULL restore_mqd in CRIU queue restore\n\nBoth create_queue_cpsch() and create_queue_nocpsch() unconditionally\ncall mqd_mgr-\u003erestore_mqd() when a CRIU restore is in progress\n(qd != NULL), with no NULL guard. On any system where restore_mqd is\nnot implemented for the given queue type, a user holding\nCAP_CHECKPOINT_RESTORE can trigger a kernel NULL pointer dereference\nand panic the machine by issuing KFD_IOC_CRIU_OP_RESTORE with a\ncrafted queue restore object. Note that checkpoint_mqd is likewise\nunimplemented on GFX12, so no legitimate CRIU image can reach this\npath \u2014 only a hand-crafted restore payload.\n\nAdd a NULL guard for restore_mqd immediately after mqd_mgr is\nresolved, unwinding via the existing error labels and returning\n-EOPNOTSUPP if the callback is not implemented. This mirrors the\nexisting checkpoint_mqd guard in checkpoint_mqd().",
"id": "GHSA-4j65-qcr2-qw3x",
"modified": "2026-09-16T12:30:37Z",
"published": "2026-09-16T12:30:37Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-89807"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/19c73848493ab58e39649700da6de11710a36de1"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/6aa530642f95d5c48aa336416f94a35e7949b647"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c643c229babe2e8efc5eefe60e19d44868a643ff"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/ebffa44e7a21ead59ac4b4264e8fc2cbb44c4a21"
}
],
"schema_version": "1.4.0",
"severity": []
}
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.