CVE-2026-89517: Software Security Vulnerability Vulnerability
UNKNOWNCVE-2026-89517 is a security vulnerability vulnerability (General Security Weakness) affecting Software libraries in the Maven ecosystem. Remediation is available in the latest vendor maintenance releases.
CVE-2026-89517 at a Glance
How to Fix CVE-2026-89517
To remediate this vulnerability, upgrade all affected Software dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
mvn dependency:tree
How to Check if You Are Affected
To determine whether your Java application is affected by CVE-2026-89517, inspect your build dependencies using the Maven Dependency Plugin:
mvn dependency:tree
Analyze the terminal output to locate any version of Software in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than the patched release), your application is affected.
Note: The mvn dependency:tree command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under General Security Weakness. In Software, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
References
Frequently Asked Questions
What is CVE-2026-89517?
Which Software versions are affected?
What version fixes CVE-2026-89517?
What CWE is associated with CVE-2026-89517?
How can I check Maven dependencies for CVE-2026-89517?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-xg94-9m82-xc6c",
"modified" : "2026-09-11T21:31:30Z",
"published" : "2026-09-11T21:31:30Z",
"aliases" : [ "CVE-2026-89517" ],
"details" : "In the Linux kernel, the following vulnerability has been resolved:\n\nsched_ext: Fix rq->core_pick corruption under core scheduling\n\nCore scheduling's pick_next_task() picks what to run on every SMT sibling of\nthe core in a single pass under the shared core-wide rq lock. The selection\nstate is consistent only while the lock is held continuously, so\n->pick_task() originally could not release it. However, since 4c95380701f5\n(\"sched/ext: Fold balance_scx() into pick_task_scx()\"), sched_ext runs\ndispatch from inside the pick and dispatching can drop the rq lock. To\nsupport this, pick_next_task() has been updated to restart the whole\nselection when a pick returns RETRY_TASK after releasing the lock.\n\nWhen selections on the same core interleave through the dropped lock, they\ncorrupt each other's state: one clears the other's rq->core_pick leading to\na NULL deref, or invalidates its keep-the-previous-task decision leaving a\ndequeued task running, which deadlocks the next wakeup and matches the\nreported hard hangs. A cookied ping-pong load on an SMT machine makes the\ninterleavings frequent and kills the kernel within seconds.\n\nFix it by making the pick return RETRY_TASK whenever dispatch released the\nrq lock, so that a selection only ever commits picks made under a\ncontinuously held lock. The previous patch's rq->scx.lock_drop_seq counts\nthe releases. A dispatch that touched nothing never releases the lock and\nits verdict, including \"nothing to run\", stands: retries are bounded, each\nfollowing a dispatch that actually did something, and an idle CPU does not\nloop.\n\nIf another dispatch is already in flight on the rq, skip dispatching and\npick from what is already queued locally - the in-flight dispatch has\nreleased the lock, so its own selection will retry and re-pick this rq,\nwhile returning RETRY_TASK here would only spin on the lock that dispatch\nneeds to finish.\n\nBalance callbacks must run in the context that queued them, so they can only\nbe queued on the CPU's own rq. When dispatching for another rq, run the\ndeferred work directly instead - that rq may consume all its picks through\nthe core-sched fast path and never queue the callback itself.\n\nThe put_prev_task_scx() warning about a runnable task being left behind\nassumed that dispatch ran as part of the very pick that is switching away.\nThat now only holds on the non-core path, so gate it and drop the\ncookie-match test, which is always true without core scheduling, from its\ncondition.",
"severity" : [ ],
"affected" : [ ],
"references" : [ {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-89517"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/cdafb68155bee2d5c4e50c12e4606323e9334e6b"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/d954004205c1a1d3f59ce8482b559266c15600fa"
} ],
"database_specific" : {
"cwe_ids" : [ ],
"severity" : null,
"github_reviewed" : false,
"github_reviewed_at" : null,
"nvd_published_at" : "2026-09-11T20:19:34Z"
}
}