{"api_version":"1","generated_at":"2026-10-27T05:47:47+00:00","cve":"CVE-2026-89994","urls":{"html":"https://cve.report/CVE-2026-89994","api":"https://cve.report/api/cve/CVE-2026-89994.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-89994","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-89994"},"summary":{"title":"dmaengine: fsl-edma: tracing: no ptr dereference during log output","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: fsl-edma: tracing: no ptr dereference during log output\n\nThe fsl edma events store a pointer to a struct fsl_edma_engine in the\nringbuffer and dereference it when a log entry is printed. At this time,\nthe pointer may no longer be valid.\n\nEvent injection can be used to trigger a crash:\n\n$ cd /sys/kernel/tracing\n$ echo 'value = 0' > events/fsl_edma/edma_writeb/inject\n$ cat trace\n\nThe log output needs only edma->membase. Add a membase field at the end\nof the event and use the new field for log output. Keep the existing\nfields for backward compatibility.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-16 11:17:10","updated_at":"2026-10-19 09:18:46"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"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","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"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"}}],"references":[{"url":"https://git.kernel.org/stable/c/2a3801ae5c344473e648006c5b03a9216ac54a6a","name":"https://git.kernel.org/stable/c/2a3801ae5c344473e648006c5b03a9216ac54a6a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ef02cd3807f39ae1dbc924788d8fa6a85334c435","name":"https://git.kernel.org/stable/c/ef02cd3807f39ae1dbc924788d8fa6a85334c435","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/2ea04dca8e627f722caa7a2037cfbae0257f3501","name":"https://git.kernel.org/stable/c/2ea04dca8e627f722caa7a2037cfbae0257f3501","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/d382aaf5fed38c6dd2e0cc710d97cb81d660ffa7","name":"https://git.kernel.org/stable/c/d382aaf5fed38c6dd2e0cc710d97cb81d660ffa7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-89994","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89994","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 11102d0c343ba06ddd303f2503c0ce46d70052f2 ef02cd3807f39ae1dbc924788d8fa6a85334c435 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 11102d0c343ba06ddd303f2503c0ce46d70052f2 d382aaf5fed38c6dd2e0cc710d97cb81d660ffa7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 11102d0c343ba06ddd303f2503c0ce46d70052f2 2a3801ae5c344473e648006c5b03a9216ac54a6a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 11102d0c343ba06ddd303f2503c0ce46d70052f2 2ea04dca8e627f722caa7a2037cfbae0257f3501 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.10","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.10 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.110 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.51 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.5 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * 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":["drivers/dma/fsl-edma-trace.h"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"ef02cd3807f39ae1dbc924788d8fa6a85334c435","status":"affected","version":"11102d0c343ba06ddd303f2503c0ce46d70052f2","versionType":"git"},{"lessThan":"d382aaf5fed38c6dd2e0cc710d97cb81d660ffa7","status":"affected","version":"11102d0c343ba06ddd303f2503c0ce46d70052f2","versionType":"git"},{"lessThan":"2a3801ae5c344473e648006c5b03a9216ac54a6a","status":"affected","version":"11102d0c343ba06ddd303f2503c0ce46d70052f2","versionType":"git"},{"lessThan":"2ea04dca8e627f722caa7a2037cfbae0257f3501","status":"affected","version":"11102d0c343ba06ddd303f2503c0ce46d70052f2","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/dma/fsl-edma-trace.h"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.10"},{"lessThan":"6.10","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.110","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.51","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.5","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.110","versionStartIncluding":"6.10","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.51","versionStartIncluding":"6.10","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.5","versionStartIncluding":"6.10","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"6.10","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: fsl-edma: tracing: no ptr dereference during log output\n\nThe fsl edma events store a pointer to a struct fsl_edma_engine in the\nringbuffer and dereference it when a log entry is printed. At this time,\nthe pointer may no longer be valid.\n\nEvent injection can be used to trigger a crash:\n\n$ cd /sys/kernel/tracing\n$ echo 'value = 0' > events/fsl_edma/edma_writeb/inject\n$ cat trace\n\nThe log output needs only edma->membase. Add a membase field at the end\nof the event and use the new field for log output. Keep the existing\nfields for backward compatibility."}],"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 stale dereference runs only when a local actor reads formatted fsl_edma events from tracefs (/sys/kernel/tracing/trace or trace_pipe). DMA MMIO tracing and event injection only enqueue ring-buffer records; there is no network, adjacent-radio, or physical-device path into TP_printk().\nAC:L - An attacker with tracefs access controls the full sequence: enable edma_log_io events, either inject a record via events/fsl_edma/*/inject or generate eDMA I/O then unbind/remove fsl-edma so the stored engine pointer is freed, then read trace. No race or uninfluenced victim state is required.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC, with no capable() check. Event enable and trace files are mode 0640 and are routinely delegated via tracefs gid= to tracing-group members on Android Automotive/NXP i.MX, ChromeOS, and developer kernels, matching prior TP_printk UAF CVEs.\nUI:N - No victim interaction is required. The attacker enables fsl_edma events, injects or records a stale edma pointer, and reads the formatted trace themselves to invoke the vulnerable TP_printk() path.\nS:U - Impact stays inside the host kernel's trace formatting path (stale fsl_edma_engine dereference). This is standard local kernel memory-safety impact with no VM escape, IOMMU/DMA boundary bypass, or other cross-authority effect; membase is used only for log offset arithmetic.\nC:H - TP_printk() dereferences __entry->edma->membase when formatting output. That is a use-after-free read of a freed fsl_edma_engine, and with event injection the edma field is attacker-chosen, yielding an arbitrary kernel pointer read whose result is printed as the register offset.\nI:H - The bug is a use-after-free of the kernel heap object fsl_edma_engine, which embeds dma_device function pointers. Freed memory can be reclaimed before the trace read, enabling heap grooming and write/control-flow primitives; kernel CNA guidance rates UAF integrity impact as High.\nA:H - Dereferencing a NULL (inject with a zeroed edma pointer) or freed fsl_edma_engine pointer during trace formatting causes a kernel oops or panic. The fix commit demonstrates a deterministic crash via inject followed by cat trace."}]}],"providerMetadata":{"dateUpdated":"2026-10-19T08:56:08.384Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/ef02cd3807f39ae1dbc924788d8fa6a85334c435"},{"url":"https://git.kernel.org/stable/c/d382aaf5fed38c6dd2e0cc710d97cb81d660ffa7"},{"url":"https://git.kernel.org/stable/c/2a3801ae5c344473e648006c5b03a9216ac54a6a"},{"url":"https://git.kernel.org/stable/c/2ea04dca8e627f722caa7a2037cfbae0257f3501"}],"title":"dmaengine: fsl-edma: tracing: no ptr dereference during log output","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-89994","datePublished":"2026-09-16T10:33:07.292Z","dateReserved":"2026-09-11T19:38:34.780Z","dateUpdated":"2026-10-19T08:56:08.384Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-16 11:17:10","lastModifiedDate":"2026-10-19 09:18:46","problem_types":[],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"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","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"89994","Ordinal":"1","Title":"dmaengine: fsl-edma: tracing: no ptr dereference during log outp","CVE":"CVE-2026-89994","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"89994","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: fsl-edma: tracing: no ptr dereference during log output\n\nThe fsl edma events store a pointer to a struct fsl_edma_engine in the\nringbuffer and dereference it when a log entry is printed. At this time,\nthe pointer may no longer be valid.\n\nEvent injection can be used to trigger a crash:\n\n$ cd /sys/kernel/tracing\n$ echo 'value = 0' > events/fsl_edma/edma_writeb/inject\n$ cat trace\n\nThe log output needs only edma->membase. Add a membase field at the end\nof the event and use the new field for log output. Keep the existing\nfields for backward compatibility.","Type":"Description","Title":"dmaengine: fsl-edma: tracing: no ptr dereference during log outp"}]}}}