{"id":"CVE-2026-98314","title":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: set timer->private_data before registering the PCM timer\n\nsnd_pcm_timer_init() calls snd_device_register() to link the new\nstruct snd_timer into the global t…","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: set timer->private_data before registering the PCM timer\n\nsnd_pcm_timer_init() calls snd_device_register() to link the new\nstruct snd_timer into the global t…","severity":"high","vendor":"Linux","product":"Linux","affected":["Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 27f167e117eca310661fbcbacb352ea08face067","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 555d168bd98daa46daccc68c908201388c834293","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 8c869d5cf5affb20994bdbb60e7d46d65c91b55f","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 686c7a6af1eea8d2a919303e4c6bbec3de79dbdc","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < e1eee8f16628f8b6bcae0a366fd6a2dd65e71edd","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < d63f5a9f8121fb43c798056d7dd34c58f47185d7","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 0b349249d572633d7c8cdeb917623d1676a2b7c3","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 1e713f9bb2ac583521f06b0eb4e22440b1e3d078","Linux 2.6.12"],"published":"2026-10-06","updated":"2026-10-06","sourceUpdated":"2026-10-06T09:18:23.033","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-98314","references":[{"url":"https://git.kernel.org/stable/c/0b349249d572633d7c8cdeb917623d1676a2b7c3","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/1e713f9bb2ac583521f06b0eb4e22440b1e3d078","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/27f167e117eca310661fbcbacb352ea08face067","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/555d168bd98daa46daccc68c908201388c834293","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/686c7a6af1eea8d2a919303e4c6bbec3de79dbdc","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/8c869d5cf5affb20994bdbb60e7d46d65c91b55f","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/d63f5a9f8121fb43c798056d7dd34c58f47185d7","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/e1eee8f16628f8b6bcae0a366fd6a2dd65e71edd","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98314.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-98314"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2546466"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98314"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98314"},{"url":"https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-98314.mbox"}],"tags":["nvd","cve.org","csaf","vex","red-hat"],"ingestedAt":"2026-10-06T08:50:17.408Z","cvss":7,"cvssVector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"vendor","cwe":["CWE-476"],"epss":0.00184,"epssPercentile":0.07961,"slug":"CVE-2026-98314","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: set timer->private_data before registering the PCM timer\n\nsnd_pcm_timer_init() calls snd_device_register() to link the new\nstruct snd_timer into the global timer list while it still carries\nhw.c_resolution = snd_pcm_timer_resolution (and hw.start/hw.stop),\nand only afterwards sets timer->private_data = substream.\n\nOnce the timer is on the list under register_mutex, a concurrent\nreader can already reach it through the same mutex and invoke these\ncallbacks. /proc/asound/timers does this via c_resolution(), and\nsnd_timer_open()+snd_timer_start() reach start()/stop() the same way.\nAll three dereference timer->private_data, which for this brief\nwindow is NULL, giving a NULL-pointer dereference:\n\n  substream = timer->private_data;\n  return substream->runtime ? ...   // substream is NULL\n\nMove the private_data/private_free assignment before\nsnd_device_register() so the timer is never visible on the list\nwithout its private_data set. On the snd_device_register() failure\npath, private_free() (snd_pcm_timer_free()) can now run, but it only\ndoes substream->timer = NULL, which is already NULL at that point\nsince substream->timer is set to the new timer just once, after a\nsuccessful registration -- so the failure path stays safe.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4 · no fix planned: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, … · updated 2026-10-09 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98314.json)","depth":"twilight","depthScore":39,"depthScoreParts":{"impact":38.5,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[{"seq":218762,"id":"CVE-2026-98314","ts":1791620489369,"field":"cvss","old":null,"new":"7"},{"seq":218761,"id":"CVE-2026-98314","ts":1791620489369,"field":"severity","old":"none","new":"high"}]}