CVE-2026-98586
In the Linux kernel, the following vulnerability has been resolved:
sctp: hold asoc or transport before mod_timer() in timer handlers
Take the association or transport reference before rearming a timer in the timer handlers.
The existing code calls mod_timer() before taking the reference needed by the rearmed timer without holding the sock lock. This creates a race with timer cleanup: if the timer is deleted after mod_timer() returns but before the reference is taken, the cleanup path can drop the timer's reference and destroy the transport or association. The timer handler then takes a reference on the already freed object and eventually drops it, causing a refcount underflow.
Read full descriptionShow less
Hold the object before mod_timer() and drop the reference if mod_timer() reports that the timer was already pending in timer handlers. Apply the same ordering to the proto-unreachable path, which can rearm a transport timer outside the timer handlers without holding the sock lock.
CVSS
NVD hasn't assigned a CVSS score to this CVE (common since the April 2026 policy change).
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days
- 0.17 %
- Percentile among all scored CVEs
- 6
- Score date
- 10/20/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
References
Show 7 references
- https://git.kernel.org/stable/c/27c51a9b55b227309161c903f9ecfbf022516bc2
- https://git.kernel.org/stable/c/35bf3b23c9a871f44c1453d85f8332be4e088dda
- https://git.kernel.org/stable/c/9d3d39da054476e7aa05cd877b93ca73a9a77434
- https://git.kernel.org/stable/c/cae23ae3f7887a1cf8a75da38edcebeef695040f
- https://git.kernel.org/stable/c/d18cb8fd1b6ba95c85de644203cfe1b071ff0c0f
- https://git.kernel.org/stable/c/f7dea7eaea20fe9b80f8f77ba44d02b4a17f8050
- https://git.kernel.org/stable/c/f9d929026d487a988bfa12c065f892e823e5b6ab
Raw JSON (NVD)
Show
{
"id": "CVE-2026-98586",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "f7dea7eaea20fe9b80f8f77ba44d02b4a17f8050",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "f9d929026d487a988bfa12c065f892e823e5b6ab",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "9d3d39da054476e7aa05cd877b93ca73a9a77434",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "27c51a9b55b227309161c903f9ecfbf022516bc2",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "d18cb8fd1b6ba95c85de644203cfe1b071ff0c0f",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "35bf3b23c9a871f44c1453d85f8332be4e088dda",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "cae23ae3f7887a1cf8a75da38edcebeef695040f",
"versionType": "git"
}
],
"programFiles": [
"net/sctp/input.c",
"net/sctp/sm_sideeffect.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "2.6.12",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.55",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.9",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"net/sctp/input.c",
"net/sctp/sm_sideeffect.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:11.180",
"references": [
{
"url": "https://git.kernel.org/stable/c/27c51a9b55b227309161c903f9ecfbf022516bc2",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/35bf3b23c9a871f44c1453d85f8332be4e088dda",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/9d3d39da054476e7aa05cd877b93ca73a9a77434",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/cae23ae3f7887a1cf8a75da38edcebeef695040f",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/d18cb8fd1b6ba95c85de644203cfe1b071ff0c0f",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f7dea7eaea20fe9b80f8f77ba44d02b4a17f8050",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f9d929026d487a988bfa12c065f892e823e5b6ab",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: hold asoc or transport before mod_timer() in timer handlers\n\nTake the association or transport reference before rearming a timer in the\ntimer handlers.\n\nThe existing code calls mod_timer() before taking the reference needed by\nthe rearmed timer without holding the sock lock. This creates a race with\ntimer cleanup: if the timer is deleted after mod_timer() returns but before\nthe reference is taken, the cleanup path can drop the timer's reference and\ndestroy the transport or association. The timer handler then takes a\nreference on the already freed object and eventually drops it, causing a\nrefcount underflow.\n\nHold the object before mod_timer() and drop the reference if mod_timer()\nreports that the timer was already pending in timer handlers. Apply the\nsame ordering to the proto-unreachable path, which can rearm a transport\ntimer outside the timer handlers without holding the sock lock."
}
],
"lastModified": "2026-10-19T10:19:19.507",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}