222 lines
12 KiB
JSON
222 lines
12 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-74687",
|
|
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "Linux",
|
|
"dateReserved": "2026-08-15T05:44:03.926Z",
|
|
"datePublished": "2026-08-22T15:32:52.792Z",
|
|
"dateUpdated": "2026-10-30T12:30:17.415Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"shortName": "Linux",
|
|
"dateUpdated": "2026-10-30T12:30:17.415Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwatchdog: at91sam9_wdt: prevent timer rearm during teardown\n\nat91_ping() rearms the watchdog timer from its callback. timer_delete()\nneither waits for a running callback nor prevents it from rearming the\ntimer, so probe failure or driver removal can leave the timer accessing the\ndevm-allocated at91wdt after it has been freed.\n\nUse timer_shutdown_sync() on both teardown paths. It waits for a running\ncallback and rejects any attempt by the callback to rearm the timer."
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"cvssV3_1": {
|
|
"version": "3.1",
|
|
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
|
|
"baseScore": 7.8,
|
|
"baseSeverity": "HIGH"
|
|
},
|
|
"scenarios": [
|
|
{
|
|
"lang": "en",
|
|
"value": "AV:L - The bug is in the AT91SAM9 platform watchdog driver during probe-failure cleanup or driver removal; it is reached only via local kernel/platform actions (boot probe, module load/unload, sysfs bind/unbind), not from network, Bluetooth, or physical USB/serial input paths.\nAC:L - at91_ping() unconditionally re-arms with mod_timer() while timer_delete() neither waits for the callback nor blocks rearm; an attacker who can time teardown or trigger the automatic probe-failure path can reliably race the periodic jiffies callback without uncontrollable layout or victim state.\nPR:L - Per CNA driver timer-teardown UAF precedent, once mod_timer() arms at91_ping() the callback runs autonomously; the UAF is reachable from local probe-failure cleanup or driver-removal activity on AT91 embedded/industrial targets without requiring init-namespace root privileges.\nUI:N - No victim interaction is required; the kernel timer fires on its own schedule and the use-after-free occurs during automatic init-failure teardown or driver removal, independent of opening /dev/watchdog or other user actions.\nS:U - Impact is a kernel heap/timer use-after-free within the host kernel on an embedded AT91 SoC; it does not cross VM, container, or IOMMU security boundaries.\nC:H - The at91_ping() timer callback dereferences freed at91wdt fields (next_heartbeat, wdd, heartbeat, base) after devm release, providing sprayable arbitrary kernel memory disclosure per UAF guidance.\nI:H - Reuse of the freed at91wdt lets at91_wdt_reset() issue MMIO writes through a controlled base pointer and mod_timer() corrupt timer/heap metadata, enabling arbitrary write and control-flow hijack primitives.\nA:H - Use-after-free access from the timer softirq path to freed at91wdt memory causes kernel oops or panic even without deliberate exploitation, and can be repeated by cycling probe/removal against the still-rearming timer."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "unaffected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"drivers/watchdog/at91sam9_wdt.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
|
|
"lessThan": "f96c18a766477e5f33d51697963a5c8aed260dae",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
|
|
"lessThan": "a9e0efcb1125e6b452c648671f15920c4955b681",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
|
|
"lessThan": "1beb4dd6a30dea699e98990dd61f892ed1c0985e",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
|
|
"lessThan": "29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
|
|
"lessThan": "b7949b0a7d998013b7ec8617a0ef5b07cca80be4",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "5161b31dc39a6d6dadc95f298de48a725b73ada8",
|
|
"lessThan": "8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "affected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"drivers/watchdog/at91sam9_wdt.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "3.14",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": "0",
|
|
"lessThan": "3.14",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.1.191",
|
|
"lessThanOrEqual": "6.1.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.6.160",
|
|
"lessThanOrEqual": "6.6.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.12.114",
|
|
"lessThanOrEqual": "6.12.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.18.45",
|
|
"lessThanOrEqual": "6.18.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "7.1.9",
|
|
"lessThanOrEqual": "7.1.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "7.2",
|
|
"lessThanOrEqual": "*",
|
|
"status": "unaffected",
|
|
"versionType": "original_commit_for_fix"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"cpeApplicability": [
|
|
{
|
|
"nodes": [
|
|
{
|
|
"operator": "OR",
|
|
"negate": false,
|
|
"cpeMatch": [
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "3.14",
|
|
"versionEndExcluding": "6.1.191"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "3.14",
|
|
"versionEndExcluding": "6.6.160"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "3.14",
|
|
"versionEndExcluding": "6.12.114"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "3.14",
|
|
"versionEndExcluding": "6.18.45"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "3.14",
|
|
"versionEndExcluding": "7.1.9"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "3.14",
|
|
"versionEndExcluding": "7.2"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/f96c18a766477e5f33d51697963a5c8aed260dae"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/a9e0efcb1125e6b452c648671f15920c4955b681"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/1beb4dd6a30dea699e98990dd61f892ed1c0985e"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/29fe74c9aa69d78c1c6a3930f1d9fc5db71a6eed"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/b7949b0a7d998013b7ec8617a0ef5b07cca80be4"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/8444d66aa6b6e7fe0a26fa1a00a11cb4d0523783"
|
|
}
|
|
],
|
|
"title": "watchdog: at91sam9_wdt: prevent timer rearm during teardown",
|
|
"x_generator": {
|
|
"engine": "bippy-1.2.0"
|
|
}
|
|
}
|
|
}
|
|
} |