FKIE_CVE-2026-99184
Vulnerability from fkie_nvd - Published: 2026-10-28 11:17 - Updated: 2026-10-28 11:17| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/accel/rocket/rocket_device.c",
"drivers/accel/rocket/rocket_device.h",
"drivers/accel/rocket/rocket_drv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5078c91f5c84bb383d0a10ed39856f98575e39cf",
"status": "affected",
"version": "ed98261b41687323ffa02ca20fef1e60b38fd1aa",
"versionType": "git"
},
{
"lessThan": "134451cf95cb6aa04b725fbfa04e878d072756f5",
"status": "affected",
"version": "ed98261b41687323ffa02ca20fef1e60b38fd1aa",
"versionType": "git"
},
{
"lessThan": "6eff1d69dae808a1518aee5a58d0853a8db3f1be",
"status": "affected",
"version": "ed98261b41687323ffa02ca20fef1e60b38fd1aa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/accel/rocket/rocket_device.c",
"drivers/accel/rocket/rocket_device.h",
"drivers/accel/rocket/rocket_drv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.18"
},
{
"lessThan": "6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.59",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\naccel/rocket: search every core slot when a core is removed\n\nrocket_remove() decrements rdev-\u003enum_cores for each core it removes,\nwhile find_core_for_dev() searches slots 0 to num_cores - 1. Unbinding\nthe cores in the order they were bound therefore loses the last one: by\nthe time it is removed the search range has already shrunk past its\nslot, so find_core_for_dev() returns -1 and rocket_remove() gives up\nwithout doing anything.\n\nnum_cores never reaches zero, rocket_device_fini() never runs, and the\nfile-scoped rdev keeps pointing at a device that is going away. Binding\nthe cores again starts from that stale count, because rocket_probe()\ntakes rdev-\u003enum_cores as the slot to fill. On an RK3588, which describes\nthree cores, the second round lands on slots 1, 2 and 3 while rdev-\u003ecores\nwas allocated with room for three:\n\n rocket fdab0000.npu: Rockchip NPU core 1 version: 1179210309\n rocket fdac0000.npu: Rockchip NPU core 2 version: 1179210309\n rocket fdad0000.npu: Rockchip NPU core 3 version: 1179210309\n\nThe write to rdev-\u003ecores[3] is past the end of the array.\n\nNothing in tree reads the core array often enough to notice, so the\noverrun is silent today. It turned up while testing a devfreq series on\ntop of this, where a worker walks every core a few times a second, and\nUBSAN caught the first bool it read out of the overrun entry:\n\n UBSAN: invalid-load in drivers/accel/rocket/rocket_devfreq.c:47:10\n load of value 5 is not a valid value for type \u0027_Bool\u0027\n Workqueue: devfreq_wq devfreq_monitor\n\nRecord how many slots were allocated and search all of them. Every core\nis then found on removal, num_cores reaches zero, the device is torn down\nand a later bind starts from a clean rdev.\n\nThis does not make unbinding a single core out of several work. probe\nstill takes num_cores as the slot to fill, so rebinding one core while\nits siblings stay bound would write over a slot that is already in use,\nand rocket_open() still reaches for cores[0] whether or not anything is\nthere. Both of those want more thought than a fix should carry.\n\nFound by unbinding and rebinding all three cores on an Orange Pi 5 Plus.\nWith this applied, 25 unbind/rebind rounds and 5 module unload/reload\nrounds run clean there: the cores land in slots 0, 1 and 2 every time,\nwhichever order they are bound in, and the shared supply goes back to a\nsingle user after each round."
}
],
"id": "CVE-2026-99184",
"lastModified": "2026-10-28T11:17:39.243",
"metrics": {},
"published": "2026-10-28T11:17:39.243",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/134451cf95cb6aa04b725fbfa04e878d072756f5"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/5078c91f5c84bb383d0a10ed39856f98575e39cf"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/6eff1d69dae808a1518aee5a58d0853a8db3f1be"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Received"
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
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.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
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.