Skip to content
Heist/ feed
Back to feed
UnratedFix available

ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set When a USB audio endpoint requests full packet transfers via the fill_max descriptor flag, data_ep_set_params() promotes ep->curpacksize to ep->maxpacksize. However, maxsize is left at the original sample-rate derived value. Since u->buffer_size is allocated as maxsize * packets, the resulting DMA buffer is far too small for the requested transfer length. When the USB host controller streams up to curpacksize bytes per packet, it writes past the end of the buffer via DMA, corrupting kernel heap memory. Update maxsize to curpacksize when fill_max is set so that the allocated DMA buffer size matches the actual transfer request size. [ changed to reassign maxsize only when ep->fill_max is set -- tiwai ]

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.265, 5.15.216, 6.1.183, 6.12.103, 6.18.44, 6.6.151, 7.1.8
CVEs
CVE-2026-74498
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 01:43 UTC · Revision 1

Source evidence

ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set

core-osv · Original source

Published 15 Aug 2026, 12:27 UTC

In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set When a USB audio endpoint requests full packet transfers via the fill_max descriptor flag, data_ep_set_params() promotes ep->curpacksize to ep->maxpacksize. However, maxsize is left at the original sample-rate derived value. Since u->buffer_size is allocated as maxsize * packets, the resulting DMA buffer is far too small for the requested transfer length. When the USB host controller streams up to curpacksize bytes per packet, it writes past the end of the buffer via DMA, corrupting kernel heap memory. Update maxsize to curpacksize when fill_max is set so that the allocated DMA buffer size matches the actual transfer request size. [ changed to reassign maxsize only when ep->fill_max is set -- tiwai ]

osv:CVE-2026-74498

Kernel

Fixed versions: 5.10.265, 5.15.216, 6.1.183, 6.6.151, 6.12.103, 6.18.44, 7.1.8

Complete source record
{
  "id": "47e028a1ffa2433883cf5310db45c3e018c098eea8943c3427e0cb84006b0bf4",
  "url": "https://osv.dev/vulnerability/CVE-2026-74498",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set When a USB audio endpoint requests full packet transfers via the fill_max descriptor flag, data_ep_set_params() promotes ep->curpacksize to ep->maxpacksize. However, maxsize is left at the original sample-rate derived value. Since u->buffer_size is allocated as maxsize * packets, the resulting DMA buffer is far too small for the requested transfer length. When the USB host controller streams up to curpacksize bytes per packet, it writes past the end of the buffer via DMA, corrupting kernel heap memory. Update maxsize to curpacksize when fill_max is set so that the allocated DMA buffer size matches the actual transfer request size. [ changed to reassign maxsize only when ep->fill_max is set -- tiwai ]",
    "evidence": "osv:CVE-2026-74498",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.265",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.216",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.183",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.151",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.103",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.44",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.1.8",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-74498",
      "aliases": [
        "CVE-2026-74498"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "8fdff6a319e7dac757c558bd283dc4577e68cde7"
                },
                {
                  "fixed": "10c24e6fddf4bdff0b6b05a47a4347b38e6960e8"
                },
                {
                  "fixed": "b1770f9ac35c0ffc34914d52347c65dcd5ac049b"
                },
                {
                  "fixed": "6cbdd11f9b05b92f4aa29f09a66e19ed0e25e66c"
                },
                {
                  "fixed": "3852974608f53e530e27c21d0c6c7d79c17b3f5a"
                },
                {
                  "fixed": "f9b6c9576568169139ac151f7881474f384659fd"
                },
                {
                  "fixed": "04595233e5606d452f9f47e6989fc7ae7440fd40"
                },
                {
                  "fixed": "bd65b7191683bebd9923904f0558b9211b9129da"
                },
                {
                  "fixed": "d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74498.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.5.0"
                },
                {
                  "fixed": "5.10.265"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.216"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.183"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.151"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.103"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.44"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.1.8"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74498.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:46.002980908Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/04595233e5606d452f9f47e6989fc7ae7440fd40",
        "https://git.kernel.org/stable/c/10c24e6fddf4bdff0b6b05a47a4347b38e6960e8",
        "https://git.kernel.org/stable/c/3852974608f53e530e27c21d0c6c7d79c17b3f5a",
        "https://git.kernel.org/stable/c/6cbdd11f9b05b92f4aa29f09a66e19ed0e25e66c",
        "https://git.kernel.org/stable/c/b1770f9ac35c0ffc34914d52347c65dcd5ac049b",
        "https://git.kernel.org/stable/c/bd65b7191683bebd9923904f0558b9211b9129da",
        "https://git.kernel.org/stable/c/d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5",
        "https://git.kernel.org/stable/c/f9b6c9576568169139ac151f7881474f384659fd",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74498.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-74498",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74498.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-74498",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 513970,
  "published_at": "2026-08-15T12:27:25.123+00:00"
}