CVE-2026-89625: Software Security Vulnerability Vulnerability
UNKNOWNCVE-2026-89625 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-89625 at a Glance
How to Fix CVE-2026-89625
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-89625, 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-89625?
Which Software versions are affected?
What version fixes CVE-2026-89625?
What CWE is associated with CVE-2026-89625?
How can I check Maven dependencies for CVE-2026-89625?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-h5c7-p475-c26r",
"modified" : "2026-09-21T15:31:36Z",
"published" : "2026-09-11T21:31:34Z",
"aliases" : [ "CVE-2026-89625" ],
"details" : "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: sony: fix UAF of ghl_poke_timer / ghl_urb at driver unbind\n\nFor GHL (Guitar Hero Live) dongles, sony_probe() arms a periodic timer:\nghl_magic_poke() (the timer callback) submits sc->ghl_urb, and the URB\ncompletion ghl_magic_poke_cb() re-arms the timer with mod_timer().\n\nsony_remove() drained the timer with timer_delete_sync() and then freed\nthe URB with usb_free_urb():\n\n\ttimer_delete_sync(&sc->ghl_poke_timer);\n\tusb_free_urb(sc->ghl_urb);\n\ntimer_delete_sync() does not block re-arming, and while the URB is in\nflight the timer is not pending, so the sync delete is a no-op. A URB\ncompletion that runs after the delete re-arms the timer, and usb_free_urb()\nonly drops a reference -- it does not kill an in-flight URB. sc is\nallocated with devm_kzalloc() and freed once sony_remove() returns, so the\nre-armed ghl_poke_timer (embedded in sc) then fires on freed memory, a\nuse-after-free from timer softirq. This is a disconnect/rmmod race.\n\nPoison the URB first, then shut the timer down, before freeing the URB.\nusb_poison_urb() kills any in-flight URB and permanently rejects further\nsubmissions, so a poke timer that is still pending cannot re-submit the\nURB from ghl_magic_poke() in the window before timer_shutdown_sync() runs.\nusb_kill_urb() would not suffice: it only cancels the in-flight URB and\nleaves it submittable once it returns, so the pending timer could\nre-submit it and put a fresh URB in flight over the freed sc.\ntimer_shutdown_sync() then drains any last callback and blocks re-arming.\nThe probe error path is unaffected: it is only reached before the timer\nis armed.\n\nReproduced under KASAN on next-20260710 via dummy_hcd + raw-gadget\nemulation of the GHL PS4 dongle (VID 0x1430 / PID 0x07bb): hid-sony binds\nand arms the poke timer, the poke URB is held in flight, the driver is\nunbound (freeing sc), then the URB is released. The completion re-arms the\ntimer on the freed sc, and the re-armed timer fires ~8 s later:\n\n BUG: KASAN: slab-use-after-free in ghl_magic_poke+0x98/0xb0\n Read of size 8 at addr ffff88810b02fd50 by task swapper/0/0\n ghl_magic_poke+0x98/0xb0\n call_timer_fn+0x35/0x2b0\n __run_timers+0x69c/0x9a0\n run_timer_softirq+0x173/0x2a0\n Allocated by task 169: sony_probe\n Freed by task 338: devres_release_group <- hid_device_remove (sony_remove)\n\nFound by 0sec (https://0sec.ai) using automated source analysis.",
"severity" : [ ],
"affected" : [ ],
"references" : [ {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-89625"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/0e3d42ef008f0931e3878b4f1b046b6e45a95bde"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/114a58640aaf3c2eb97b5b01c75ab5e541d15d9c"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/3155dc327344d286f17345cd371be05e255a4328"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/a26705bd2e2728833e7a538ce91e58a5eeff496a"
} ],
"database_specific" : {
"cwe_ids" : [ ],
"severity" : null,
"github_reviewed" : false,
"github_reviewed_at" : null,
"nvd_published_at" : "2026-09-11T20:19:47Z"
}
}