GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

GHSA-JC2G-JX97-4CG9

Vulnerability from github – Published: 2026-08-15 15:30 – Updated: 2026-08-15 15:30
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

ALSA: usb-audio: fix use-after-free in ump_to_endpoint()

create_midi2_ump() registers a card-owned snd_ump_endpoint and stores a back-pointer to its per-interface snd_usb_midi2_ump object in ump->private_data, but it never installs an ump->private_free hook and never clears that pointer.

If a later step of snd_usb_midi_v2_create() fails, its error path calls free_all_midi2_umps(), which kfree()s the snd_usb_midi2_ump object while the already-registered endpoint keeps pointing at it. The created /dev/snd/umpCD node stays exposed, so the first operation of any UMP open, ump_to_endpoint(), dereferences the dangling ump->private_data and reads rmidi->eps[dir] out of freed memory.

A malicious USB MIDI 2.0 device that makes creation fail after the endpoint is registered can thus trigger a slab use-after-free read on a subsequent open of the UMP node.

Clear the endpoint's back-pointer before freeing the object, and let ump_to_endpoint() tolerate a NULL private_data so the open/close/trigger callbacks fail cleanly (their callers already handle a NULL endpoint) instead of dereferencing a stale pointer.

Discovered by XBOW, triaged by Baul Lee baul.lee@xbow.com

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-74501"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-08-15T13:17:55Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: usb-audio: fix use-after-free in ump_to_endpoint()\n\ncreate_midi2_ump() registers a card-owned snd_ump_endpoint and stores a\nback-pointer to its per-interface snd_usb_midi2_ump object in\nump-\u003eprivate_data, but it never installs an ump-\u003eprivate_free hook and\nnever clears that pointer.\n\nIf a later step of snd_usb_midi_v2_create() fails, its error path calls\nfree_all_midi2_umps(), which kfree()s the snd_usb_midi2_ump object while\nthe already-registered endpoint keeps pointing at it.  The created\n/dev/snd/umpC*D* node stays exposed, so the first operation of any UMP\nopen, ump_to_endpoint(), dereferences the dangling ump-\u003eprivate_data and\nreads rmidi-\u003eeps[dir] out of freed memory.\n\nA malicious USB MIDI 2.0 device that makes creation fail after the\nendpoint is registered can thus trigger a slab use-after-free read on a\nsubsequent open of the UMP node.\n\nClear the endpoint\u0027s back-pointer before freeing the object, and let\nump_to_endpoint() tolerate a NULL private_data so the open/close/trigger\ncallbacks fail cleanly (their callers already handle a NULL endpoint)\ninstead of dereferencing a stale pointer.\n\nDiscovered by XBOW, triaged by Baul Lee \u003cbaul.lee@xbow.com\u003e",
  "id": "GHSA-jc2g-jx97-4cg9",
  "modified": "2026-08-15T15:30:34Z",
  "published": "2026-08-15T15:30:34Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-74501"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/49eccef6d6e1c00dac6fb2e7eb6f9206c33e1c37"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/4a05b2d1b4642df74f30b6f54843e825c4a2bfd3"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/8a7a33b846d6ba695891b8d0040027cdbad8cd52"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ae388c0e1bf727972096f770f82d12e4f748d1b6"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/cc014ebf803174f0e5d15956dfc5a38413c945ae"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…