CVE-2026-90338: Software Security Vulnerability Vulnerability
UNKNOWNCVE-2026-90338 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-90338 at a Glance
How to Fix CVE-2026-90338
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-90338, 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-90338?
Which Software versions are affected?
What version fixes CVE-2026-90338?
What CWE is associated with CVE-2026-90338?
How can I check Maven dependencies for CVE-2026-90338?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-hxcg-grxr-xv6j",
"modified" : "2026-09-17T18:32:01Z",
"published" : "2026-09-17T18:32:01Z",
"aliases" : [ "CVE-2026-90338" ],
"details" : "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: amba-pl011: keep console clock enabled for atomic writes\n\npl011_console_write_atomic() runs from nbcon atomic context, where\nsleeping is not allowed. It calls clk_enable(), which takes the common-clk\nenable_lock. Under PREEMPT_RT that is a sleeping lock:\nclk_enable_lock() first tries spin_trylock_irqsave(), but on contention\nfalls back to spin_lock_irqsave(). Therefore, an atomic-context printk on\nan RT kernel with a clk-backed pl011 can trip:\n\n BUG: sleeping function called from invalid context at spinlock_rt.c:48\n __might_resched from rt_spin_lock\n rt_spin_lock from clk_enable_lock\n clk_enable_lock from clk_enable\n clk_enable from pl011_console_write_atomic\n ... from vprintk_emit\n\nThis was found and reproduced on PREEMPT_RT. Arm32 and arm64 DT SoCs are\naffected; arm64 SBSA/ACPI has no clk, so clk_enable(NULL) short-circuits\nbefore the lock. In addition, write_atomic() may be invoked from NMI\ncontext and is documented to avoid locking. Removing clk_enable() from\nthe callback also avoids a potentially unsafe NMI acquisition of the\ncommon-clock enable_lock.\n\nAn nbcon atomic-capable console must be printable from any context, so\nthe clock cannot be gated between writes. Enable the clock while the\nconsole is available for output: use clk_prepare_enable() in\npl011_console_setup(), release it via clk_disable_unprepare() in the\nconsole .exit() callback, and drop the per-write clk_enable()/clk_disable()\npairs from write_atomic() and write_thread().\n\nWhen printk suspends consoles, drop the reference after\nuart_suspend_port() stops console access and restore it before\nuart_resume_port() -- but only if suspend actually marked the port\nsuspended (a wake-capable tty stays running and must keep its clock), and\nkeep it when console_suspend_enabled is false so no_console_suspend works.\n\nThe active power cost of keeping the clock enabled is platform-dependent:\nnone where the UART clock is a fixed always-on oscillator, real where it\nis a gateable clock branch, which then cannot be gated (nor possibly can\nits parent clocks) while the console is available for output. When serial\ncore actually suspends the port, the reference is released so the clock\nprovider can gate the clock tree.",
"severity" : [ ],
"affected" : [ ],
"references" : [ {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-90338"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/2ad24c1d0b939d814a3020f96a667ac2d0394289"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/5b77848423f4a5a362dcc3caedcdc1a75d0758c3"
}, {
"type" : "WEB",
"url" : "https://git.kernel.org/stable/c/c0e8cfef754645856374e82c8effd54b7d82002b"
} ],
"database_specific" : {
"cwe_ids" : [ ],
"severity" : null,
"github_reviewed" : false,
"github_reviewed_at" : null,
"nvd_published_at" : "2026-09-17T17:17:32Z"
}
}