CVE-2026-31602 (GCVE-0-2026-31602)
Vulnerability from cvelistv5
Published
2026-04-24 14:42
Modified
2026-08-05 12:23
Summary
In the Linux kernel, the following vulnerability has been resolved: ALSA: ctxfi: Limit PTP to a single page Commit 391e69143d0a increased CT_PTP_NUM from 1 to 4 to support 256 playback streams, but the additional pages are not used by the card correctly. The CT20K2 hardware already has multiple VMEM_PTPAL registers, but using them separately would require refactoring the entire virtual memory allocation logic. ct_vm_map() always uses PTEs in vm->ptp[0].area regardless of CT_PTP_NUM. On AMD64 systems, a single PTP covers 512 PTEs (2M). When aggregate memory allocations exceed this limit, ct_vm_map() tries to access beyond the allocated space and causes a page fault: BUG: unable to handle page fault for address: ffffd4ae8a10a000 Oops: Oops: 0002 [#1] SMP PTI RIP: 0010:ct_vm_map+0x17c/0x280 [snd_ctxfi] Call Trace: atc_pcm_playback_prepare+0x225/0x3b0 ct_pcm_playback_prepare+0x38/0x60 snd_pcm_do_prepare+0x2f/0x50 snd_pcm_action_single+0x36/0x90 snd_pcm_action_nonatomic+0xbf/0xd0 snd_pcm_ioctl+0x28/0x40 __x64_sys_ioctl+0x97/0xe0 do_syscall_64+0x81/0x610 entry_SYSCALL_64_after_hwframe+0x76/0x7e Revert CT_PTP_NUM to 1. The 256 SRC_RESOURCE_NUM and playback_count remain unchanged.
Impacted products
Vendor Product Version
Linux Linux Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Version: 391e69143d0a05f960e3ab39a8c26b7b230bb8a9
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "sound/pci/ctxfi/ctvmem.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c5908160e17cb56e1f61fbaee08adc21083f4933",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "de8016fb0904d68ac886e375069535996baa42ee",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "2b4331c08c0b385598b4d8ccd71e93ab3f4b2578",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "452894005b4abe141b11fe01e7bfe152e6d3860f",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "365c36e1a126c6aa1aecedd3a351bcabc66f0c29",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "3fd0685d7fef68c2d8a04876bcf9eaa0724ad6a5",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "b7f5ecd13cce8c2f8fa5a84c9aab65997142577e",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "ad9011a795407093dcf507f6e5da1828987b4b47",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            },
            {
              "lessThan": "e9418da50d9e5c496c22fe392e4ad74c038a94eb",
              "status": "affected",
              "version": "391e69143d0a05f960e3ab39a8c26b7b230bb8a9",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "sound/pci/ctxfi/ctvmem.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.2"
            },
            {
              "lessThan": "3.2",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.258",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.209",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.175",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.136",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.83",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.24",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.1",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.258",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.209",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.175",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.136",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.83",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.24",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.14",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.1",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "3.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "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-\u003eptp[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": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "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-\u003eptp[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."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:23:44.562Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "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"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-31602",
    "datePublished": "2026-04-24T14:42:25.935Z",
    "dateReserved": "2026-03-09T15:48:24.121Z",
    "dateUpdated": "2026-08-05T12:23:44.562Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…