{"api_version":"1","generated_at":"2026-06-27T10:09:32+00:00","cve":"CVE-2026-53170","urls":{"html":"https://cve.report/CVE-2026-53170","api":"https://cve.report/api/cve/CVE-2026-53170.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-53170","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-53170"},"summary":{"title":"accel/ethosu: reject DMA commands with uninitialized length","description":"In the Linux kernel, the following vulnerability has been resolved:\n\naccel/ethosu: reject DMA commands with uninitialized length\n\ncmd_state_init() initializes the command state with memset(0xff),\nleaving dma->len at U64_MAX to signal missing setup. The only setter\nis NPU_SET_DMA0_LEN; if userspace omits this command and issues\nNPU_OP_DMA_START, dma->len remains U64_MAX.\n\nIn dma_length(), a positive stride added to U64_MAX wraps to a small\nvalue. With size0 == 1, check_mul_overflow() does not trigger and\ndma_length() returns 0 instead of U64_MAX. The caller's U64_MAX check\nthen passes, region_size[] stays 0, and the bounds check in\nethosu_job.c is bypassed, allowing hardware to execute DMA with stale\nphysical addresses.\n\nFix by checking for U64_MAX at the start of dma_length() before any\narithmetic, consistent with the sentinel value used throughout the\ndriver to detect uninitialized fields.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-06-25 09:16:34","updated_at":"2026-06-25 09:16:34"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/d9d021218162b6c4fe0bdf42b2b340f1aae23a12","name":"https://git.kernel.org/stable/c/d9d021218162b6c4fe0bdf42b2b340f1aae23a12","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/fb25c76a820ca8a547aa478bfb503da0a11494ab","name":"https://git.kernel.org/stable/c/fb25c76a820ca8a547aa478bfb503da0a11494ab","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-53170","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53170","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b fb25c76a820ca8a547aa478bfb503da0a11494ab git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b d9d021218162b6c4fe0bdf42b2b340f1aae23a12 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.19","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.13 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"53170","cve":"CVE-2026-53170","epss":"0.001720000","percentile":"0.068670000","score_date":"2026-06-26","updated_at":"2026-06-27 00:07:46"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/accel/ethosu/ethosu_gem.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"fb25c76a820ca8a547aa478bfb503da0a11494ab","status":"affected","version":"5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b","versionType":"git"},{"lessThan":"d9d021218162b6c4fe0bdf42b2b340f1aae23a12","status":"affected","version":"5a5e9c0228e613f0ef2a58b9782d7c0ea8f1e58b","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/accel/ethosu/ethosu_gem.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.19"},{"lessThan":"6.19","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.13","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":"7.0.13","versionStartIncluding":"6.19","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"6.19","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\naccel/ethosu: reject DMA commands with uninitialized length\n\ncmd_state_init() initializes the command state with memset(0xff),\nleaving dma->len at U64_MAX to signal missing setup. The only setter\nis NPU_SET_DMA0_LEN; if userspace omits this command and issues\nNPU_OP_DMA_START, dma->len remains U64_MAX.\n\nIn dma_length(), a positive stride added to U64_MAX wraps to a small\nvalue. With size0 == 1, check_mul_overflow() does not trigger and\ndma_length() returns 0 instead of U64_MAX. The caller's U64_MAX check\nthen passes, region_size[] stays 0, and the bounds check in\nethosu_job.c is bypassed, allowing hardware to execute DMA with stale\nphysical addresses.\n\nFix by checking for U64_MAX at the start of dma_length() before any\narithmetic, consistent with the sentinel value used throughout the\ndriver to detect uninitialized fields."}],"providerMetadata":{"dateUpdated":"2026-06-25T08:38:48.728Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/fb25c76a820ca8a547aa478bfb503da0a11494ab"},{"url":"https://git.kernel.org/stable/c/d9d021218162b6c4fe0bdf42b2b340f1aae23a12"}],"title":"accel/ethosu: reject DMA commands with uninitialized length","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-53170","datePublished":"2026-06-25T08:38:48.728Z","dateReserved":"2026-06-09T07:44:35.389Z","dateUpdated":"2026-06-25T08:38:48.728Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-06-25 09:16:34","lastModifiedDate":"2026-06-25 09:16:34","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"53170","Ordinal":"1","Title":"accel/ethosu: reject DMA commands with uninitialized length","CVE":"CVE-2026-53170","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"53170","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\naccel/ethosu: reject DMA commands with uninitialized length\n\ncmd_state_init() initializes the command state with memset(0xff),\nleaving dma->len at U64_MAX to signal missing setup. The only setter\nis NPU_SET_DMA0_LEN; if userspace omits this command and issues\nNPU_OP_DMA_START, dma->len remains U64_MAX.\n\nIn dma_length(), a positive stride added to U64_MAX wraps to a small\nvalue. With size0 == 1, check_mul_overflow() does not trigger and\ndma_length() returns 0 instead of U64_MAX. The caller's U64_MAX check\nthen passes, region_size[] stays 0, and the bounds check in\nethosu_job.c is bypassed, allowing hardware to execute DMA with stale\nphysical addresses.\n\nFix by checking for U64_MAX at the start of dma_length() before any\narithmetic, consistent with the sentinel value used throughout the\ndriver to detect uninitialized fields.","Type":"Description","Title":"accel/ethosu: reject DMA commands with uninitialized length"}]}}}