{"api_version":"1","generated_at":"2026-08-16T20:41:36+00:00","cve":"CVE-2026-74498","urls":{"html":"https://cve.report/CVE-2026-74498","api":"https://cve.report/api/cve/CVE-2026-74498.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-74498","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-74498"},"summary":{"title":"ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set\n\nWhen a USB audio endpoint requests full packet transfers via the fill_max\ndescriptor flag, data_ep_set_params() promotes ep->curpacksize to\nep->maxpacksize. However, maxsize is left at the original sample-rate\nderived value.\n\nSince u->buffer_size is allocated as maxsize * packets, the resulting\nDMA buffer is far too small for the requested transfer length. When the\nUSB host controller streams up to curpacksize bytes per packet, it writes\npast the end of the buffer via DMA, corrupting kernel heap memory.\n\nUpdate maxsize to curpacksize when fill_max is set so that the allocated\nDMA buffer size matches the actual transfer request size.\n\n[ changed to reassign maxsize only when ep->fill_max is set -- tiwai ]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-15 13:17:54","updated_at":"2026-08-15 13:17:54"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5","name":"https://git.kernel.org/stable/c/d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/bd65b7191683bebd9923904f0558b9211b9129da","name":"https://git.kernel.org/stable/c/bd65b7191683bebd9923904f0558b9211b9129da","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f9b6c9576568169139ac151f7881474f384659fd","name":"https://git.kernel.org/stable/c/f9b6c9576568169139ac151f7881474f384659fd","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3852974608f53e530e27c21d0c6c7d79c17b3f5a","name":"https://git.kernel.org/stable/c/3852974608f53e530e27c21d0c6c7d79c17b3f5a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/04595233e5606d452f9f47e6989fc7ae7440fd40","name":"https://git.kernel.org/stable/c/04595233e5606d452f9f47e6989fc7ae7440fd40","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-74498","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-74498","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8fdff6a319e7dac757c558bd283dc4577e68cde7 3852974608f53e530e27c21d0c6c7d79c17b3f5a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8fdff6a319e7dac757c558bd283dc4577e68cde7 f9b6c9576568169139ac151f7881474f384659fd git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8fdff6a319e7dac757c558bd283dc4577e68cde7 04595233e5606d452f9f47e6989fc7ae7440fd40 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8fdff6a319e7dac757c558bd283dc4577e68cde7 bd65b7191683bebd9923904f0558b9211b9129da git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 8fdff6a319e7dac757c558bd283dc4577e68cde7 d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3.5","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 3.5 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.151 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.103 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.44 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.8 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2-rc6 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["sound/usb/endpoint.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"3852974608f53e530e27c21d0c6c7d79c17b3f5a","status":"affected","version":"8fdff6a319e7dac757c558bd283dc4577e68cde7","versionType":"git"},{"lessThan":"f9b6c9576568169139ac151f7881474f384659fd","status":"affected","version":"8fdff6a319e7dac757c558bd283dc4577e68cde7","versionType":"git"},{"lessThan":"04595233e5606d452f9f47e6989fc7ae7440fd40","status":"affected","version":"8fdff6a319e7dac757c558bd283dc4577e68cde7","versionType":"git"},{"lessThan":"bd65b7191683bebd9923904f0558b9211b9129da","status":"affected","version":"8fdff6a319e7dac757c558bd283dc4577e68cde7","versionType":"git"},{"lessThan":"d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5","status":"affected","version":"8fdff6a319e7dac757c558bd283dc4577e68cde7","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["sound/usb/endpoint.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"3.5"},{"lessThan":"3.5","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.151","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.103","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.44","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.8","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2-rc6","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.151","versionStartIncluding":"3.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.103","versionStartIncluding":"3.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.44","versionStartIncluding":"3.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.8","versionStartIncluding":"3.5","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2-rc6","versionStartIncluding":"3.5","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set\n\nWhen a USB audio endpoint requests full packet transfers via the fill_max\ndescriptor flag, data_ep_set_params() promotes ep->curpacksize to\nep->maxpacksize. However, maxsize is left at the original sample-rate\nderived value.\n\nSince u->buffer_size is allocated as maxsize * packets, the resulting\nDMA buffer is far too small for the requested transfer length. When the\nUSB host controller streams up to curpacksize bytes per packet, it writes\npast the end of the buffer via DMA, corrupting kernel heap memory.\n\nUpdate maxsize to curpacksize when fill_max is set so that the allocated\nDMA buffer size matches the actual transfer request size.\n\n[ changed to reassign maxsize only when ep->fill_max is set -- tiwai ]"}],"providerMetadata":{"dateUpdated":"2026-08-15T12:27:25.123Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/3852974608f53e530e27c21d0c6c7d79c17b3f5a"},{"url":"https://git.kernel.org/stable/c/f9b6c9576568169139ac151f7881474f384659fd"},{"url":"https://git.kernel.org/stable/c/04595233e5606d452f9f47e6989fc7ae7440fd40"},{"url":"https://git.kernel.org/stable/c/bd65b7191683bebd9923904f0558b9211b9129da"},{"url":"https://git.kernel.org/stable/c/d0199ae1666ff9ae2d1d568d64c3430d4c47f0e5"}],"title":"ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-74498","datePublished":"2026-08-15T12:27:25.123Z","dateReserved":"2026-08-15T05:44:03.907Z","dateUpdated":"2026-08-15T12:27:25.123Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-15 13:17:54","lastModifiedDate":"2026-08-15 13:17:54","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"74498","Ordinal":"1","Title":"ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_ma","CVE":"CVE-2026-74498","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"74498","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set\n\nWhen a USB audio endpoint requests full packet transfers via the fill_max\ndescriptor flag, data_ep_set_params() promotes ep->curpacksize to\nep->maxpacksize. However, maxsize is left at the original sample-rate\nderived value.\n\nSince u->buffer_size is allocated as maxsize * packets, the resulting\nDMA buffer is far too small for the requested transfer length. When the\nUSB host controller streams up to curpacksize bytes per packet, it writes\npast the end of the buffer via DMA, corrupting kernel heap memory.\n\nUpdate maxsize to curpacksize when fill_max is set so that the allocated\nDMA buffer size matches the actual transfer request size.\n\n[ changed to reassign maxsize only when ep->fill_max is set -- tiwai ]","Type":"Description","Title":"ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_ma"}]}}}