CVE-2026-97952: Software Security Vulnerability Vulnerability

UNKNOWN
Advisory Identifier: GHSA-gjc3-h94h-x64h
Published
Advisory Summary

CVE-2026-97952 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-97952 at a Glance

CVE Identifier CVE-2026-97952
GHSA Identifier GHSA-gjc3-h94h-x64h
Severity N/A
CVSS v3.1 Base Score N/A
CWE Classification General Security Weakness
Affected Product Software
Package Ecosystem Maven
Published Date
Last Updated

How to Fix CVE-2026-97952

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.

Verify Direct and Transitive Dependencies

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-97952, 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

In the Linux kernel, the following vulnerability has been resolved: sunvdc: unmap LDC cookies when the descriptor send fails __send_request() maps the request's pages into the LDC channel's map table (ldc_map_sg()), fills in the descriptor and marks it VIO_DESC_READY before ringing the doorbell via __vdc_tx_trigger(). When the trigger fails, the error path only prints a message: the descriptor stays READY and the cookies are never unmapped. The mapping is normally released in vdc_end_one() when the peer completes the descriptor - but a descriptor whose doorbell was never sent will never complete, and since dr->prod is not advanced on failure, the reset path (vdc_requeue_inflight(), which walks [cons, prod)) never visits it either. The map table entries are leaked permanently. Since commit a11f6ca9aef9 ("sunvdc: Do not spin in an infinite loop when vio_ldc_send() returns EAGAIN") trigger failures occur in practice under load, so every resulting I/O error also leaks one request's worth of entries from the fixed-size (8192 entries per channel) map table. Because the allocator hands out contiguous ranges, fragmentation makes large multi-segment requests fail first as the table drains, until ldc_map_sg() fails permanently and the disk is dead until reboot. It also makes any retry-based recovery unusable: requeuing the request on -EAGAIN remaps the pages on every attempt, overwriting desc->cookies and orphaning the previous mapping, so the table drains at the retry rate. This is the memory exhaustion observed when the requeue approach was first tested in October 2025. Roll back on failure: unmap the cookies, mark the descriptor FREE again and clear the request entry. If the trigger failed with -ENOTCONN, __vdc_tx_trigger() has already reset the port, which tears down and reallocates both the dring and the LDC channel including its map table - nothing to roll back, and the stale descriptor must not be touched.

References

Frequently Asked Questions

What is CVE-2026-97952?
CVE-2026-97952 is a security vulnerability in Software classified as a security vulnerability vulnerability under General Security Weakness.
Which Software versions are affected?
Affected versions include releases prior to current release patches.
What version fixes CVE-2026-97952?
Upgrading to current release patches (or the latest patched release for your respective branch) resolves the vulnerability.
What CWE is associated with CVE-2026-97952?
CVE-2026-97952 is classified under General Security Weakness.
How can I check Maven dependencies for CVE-2026-97952?
Run the dependency tree command: 'mvn dependency:tree'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-gjc3-h94h-x64h",
  "modified" : "2026-10-03T12:31:22Z",
  "published" : "2026-09-25T12:31:29Z",
  "aliases" : [ "CVE-2026-97952" ],
  "details" : "In the Linux kernel, the following vulnerability has been resolved:\n\nsunvdc: unmap LDC cookies when the descriptor send fails\n\n__send_request() maps the request's pages into the LDC channel's map\ntable (ldc_map_sg()), fills in the descriptor and marks it\nVIO_DESC_READY before ringing the doorbell via __vdc_tx_trigger().\nWhen the trigger fails, the error path only prints a message: the\ndescriptor stays READY and the cookies are never unmapped. The\nmapping is normally released in vdc_end_one() when the peer completes\nthe descriptor - but a descriptor whose doorbell was never sent will\nnever complete, and since dr->prod is not advanced on failure, the\nreset path (vdc_requeue_inflight(), which walks [cons, prod)) never\nvisits it either. The map table entries are leaked permanently.\n\nSince commit a11f6ca9aef9 (\"sunvdc: Do not spin in an infinite loop\nwhen vio_ldc_send() returns EAGAIN\") trigger failures occur in\npractice under load, so every resulting I/O error also leaks one\nrequest's worth of entries from the fixed-size (8192 entries per\nchannel) map table. Because the allocator hands out contiguous\nranges, fragmentation makes large multi-segment requests fail first\nas the table drains, until ldc_map_sg() fails permanently and the\ndisk is dead until reboot.\n\nIt also makes any retry-based recovery unusable: requeuing the\nrequest on -EAGAIN remaps the pages on every attempt, overwriting\ndesc->cookies and orphaning the previous mapping, so the table\ndrains at the retry rate. This is the memory exhaustion observed\nwhen the requeue approach was first tested in October 2025.\n\nRoll back on failure: unmap the cookies, mark the descriptor FREE\nagain and clear the request entry. If the trigger failed with\n-ENOTCONN, __vdc_tx_trigger() has already reset the port, which\ntears down and reallocates both the dring and the LDC channel\nincluding its map table - nothing to roll back, and the stale\ndescriptor must not be touched.",
  "severity" : [ ],
  "affected" : [ ],
  "references" : [ {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-97952"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/0c6da21fa35e03fc74f09895433ccd6d4a9c3530"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/24564576be423f3b5d7e67cd7df848ac66646497"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/57835952566f0be9b365a6eb3a70b397a9d5ef47"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/9251573e7cf7d797ae4a30b2a236af8242237a61"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/ab81a5c1014a38dab0fb402609fd866b0bcb4726"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/b0de6463667e9bb9dc14a83a9c24c1b6b3f7b5f7"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/eb9c5f6747fe98b83c78cb5476a914e91d50e8e8"
  }, {
    "type" : "WEB",
    "url" : "https://git.kernel.org/stable/c/f3322baa3a8ac87730feae952c1146269d78e098"
  } ],
  "database_specific" : {
    "cwe_ids" : [ ],
    "severity" : null,
    "github_reviewed" : false,
    "github_reviewed_at" : null,
    "nvd_published_at" : "2026-09-25T11:17:22Z"
  }
}