{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-31602","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-03-09T15:48:24.121Z","datePublished":"2026-04-24T14:42:25.935Z","dateUpdated":"2026-08-05T12:23:44.562Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:23:44.562Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: ctxfi: Limit PTP to a single page\n\nCommit 391e69143d0a increased CT_PTP_NUM from 1 to 4 to support 256\nplayback streams, but the additional pages are not used by the card\ncorrectly. The CT20K2 hardware already has multiple VMEM_PTPAL\nregisters, but using them separately would require refactoring the\nentire virtual memory allocation logic.\n\nct_vm_map() always uses PTEs in vm->ptp[0].area regardless of\nCT_PTP_NUM. On AMD64 systems, a single PTP covers 512 PTEs (2M). When\naggregate memory allocations exceed this limit, ct_vm_map() tries to\naccess beyond the allocated space and causes a page fault:\n\n  BUG: unable to handle page fault for address: ffffd4ae8a10a000\n  Oops: Oops: 0002 [#1] SMP PTI\n  RIP: 0010:ct_vm_map+0x17c/0x280 [snd_ctxfi]\n  Call Trace:\n  atc_pcm_playback_prepare+0x225/0x3b0\n  ct_pcm_playback_prepare+0x38/0x60\n  snd_pcm_do_prepare+0x2f/0x50\n  snd_pcm_action_single+0x36/0x90\n  snd_pcm_action_nonatomic+0xbf/0xd0\n  snd_pcm_ioctl+0x28/0x40\n  __x64_sys_ioctl+0x97/0xe0\n  do_syscall_64+0x81/0x610\n  entry_SYSCALL_64_after_hwframe+0x76/0x7e\n\nRevert CT_PTP_NUM to 1. The 256 SRC_RESOURCE_NUM and playback_count\nremain unchanged."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable path is reached through local ALSA PCM device operations on a ctxfi sound card, via open and ioctl on /dev/snd/pcmC*D*p. It is not reachable from network packets or user namespaces.\nAC:L - The trigger is deterministic: open/prepare enough playback substreams with normal PCM buffer sizing until the first PTP page is exceeded. There is no race or condition outside attacker control beyond access to the affected local device.\nPR:L - The attacker needs local userspace access to the ALSA PCM device node, which is commonly granted to an unprivileged logged-in audio user. No kernel capability or real root privilege is checked on the ioctl path.\nUI:N - No victim action is required after the attacker has local device access. The attacker directly issues the PCM setup and prepare ioctls.\nS:U - The impact is within the local kernel and device driver security authority. This is not a guest-to-host escape, IOMMU bypass, or other scope-changing boundary crossing.\nC:H - The bug is an out-of-bounds kernel write past the allocated page-table page, and such memory corruption can plausibly be leveraged for high-impact information disclosure. Under the higher-severity rule, this is scored as high confidentiality impact.\nI:H - ct_vm_map writes attacker-influenced DMA address values beyond vm->ptp[0].area when aggregate mappings exceed one page. This is kernel memory corruption, so integrity impact is high.\nA:H - The commit documents a reproducible kernel page fault and Oops in ct_vm_map from the PCM prepare path. A local attacker can repeatedly trigger this for high availability impact."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/pci/ctxfi/ctvmem.h"],"versions":[{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"c5908160e17cb56e1f61fbaee08adc21083f4933","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"de8016fb0904d68ac886e375069535996baa42ee","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"2b4331c08c0b385598b4d8ccd71e93ab3f4b2578","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"452894005b4abe141b11fe01e7bfe152e6d3860f","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"365c36e1a126c6aa1aecedd3a351bcabc66f0c29","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"3fd0685d7fef68c2d8a04876bcf9eaa0724ad6a5","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"b7f5ecd13cce8c2f8fa5a84c9aab65997142577e","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"ad9011a795407093dcf507f6e5da1828987b4b47","status":"affected","versionType":"git"},{"version":"391e69143d0a05f960e3ab39a8c26b7b230bb8a9","lessThan":"e9418da50d9e5c496c22fe392e4ad74c038a94eb","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/pci/ctxfi/ctvmem.h"],"versions":[{"version":"3.2","status":"affected"},{"version":"0","lessThan":"3.2","status":"unaffected","versionType":"semver"},{"version":"5.10.258","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.209","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.175","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.136","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.83","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.24","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"6.19.14","lessThanOrEqual":"6.19.*","status":"unaffected","versionType":"semver"},{"version":"7.0.1","lessThanOrEqual":"7.0.*","status":"unaffected","versionType":"semver"},{"version":"7.1","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"6.6.136"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"6.12.83"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"6.18.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"6.19.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"7.0.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2","versionEndExcluding":"7.1"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/c5908160e17cb56e1f61fbaee08adc21083f4933"},{"url":"https://git.kernel.org/stable/c/de8016fb0904d68ac886e375069535996baa42ee"},{"url":"https://git.kernel.org/stable/c/2b4331c08c0b385598b4d8ccd71e93ab3f4b2578"},{"url":"https://git.kernel.org/stable/c/452894005b4abe141b11fe01e7bfe152e6d3860f"},{"url":"https://git.kernel.org/stable/c/365c36e1a126c6aa1aecedd3a351bcabc66f0c29"},{"url":"https://git.kernel.org/stable/c/3fd0685d7fef68c2d8a04876bcf9eaa0724ad6a5"},{"url":"https://git.kernel.org/stable/c/b7f5ecd13cce8c2f8fa5a84c9aab65997142577e"},{"url":"https://git.kernel.org/stable/c/ad9011a795407093dcf507f6e5da1828987b4b47"},{"url":"https://git.kernel.org/stable/c/e9418da50d9e5c496c22fe392e4ad74c038a94eb"}],"title":"ALSA: ctxfi: Limit PTP to a single page","x_generator":{"engine":"bippy-1.2.0"}}}}