CVE-2022-49073 json
ata: sata_dwc_460ex: Fix crash due to OOB write
published 2025-02-26 20 mo ago modified 2026-08-05 3 mo ago also EUVD-2022-55131
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 20%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
ata: sata_dwc_460ex: Fix crash due to OOB write
the driver uses libata's "tag" values from in various arrays. Since the mentioned patch bumped the ATA_TAG_INTERNAL to 32, the value of the SATA_DWC_QCMD_MAX needs to account for that.
Otherwise ATA_TAG_INTERNAL usage cause similar crashes like this as reported by Tice Rex on the OpenWrt Forum and reproduced (with symbols) here:
| BUG: Kernel NULL pointer dereference at 0x00000000 | Faulting instruction address: 0xc03ed4b8 | Oops: Kernel access of bad area, sig: 11 [#1] | BE PAGE_SIZE=4K PowerPC 44x Platform | CPU: 0 PID: 362 Comm: scsi_eh_1 Not tainted 5.4.163 #0 | NIP: c03ed4b8 LR: c03d27e8 CTR: c03ed36c | REGS: cfa59950 TRAP: 0300 Not tainted (5.4.163) | MSR: 00021000 <CE,ME> CR: 42000222 XER: 00000000 | DEAR: 00000000 ESR: 00000000 | GPR00: c03d27e8 cfa59a08 cfa55fe0 00000000 0fa46bc0 [...] | [..] | NIP [c03ed4b8] sata_dwc_qc_issue+0x14c/0x254 | LR [c03d27e8] ata_qc_issue+0x1c8/0x2dc | Call Trace: | [cfa59a08] [c003f4e0] __cancel_work_timer+0x124/0x194 (unreliable) | [cfa59a78] [c03d27e8] ata_qc_issue+0x1c8/0x2dc | [cfa59a98] [c03d2b3c] ata_exec_internal_sg+0x240/0x524 | [cfa59b08] [c03d2e98] ata_exec_internal+0x78/0xe0 | [cfa59b58] [c03d30fc] ata_read_log_page.part.38+0x1dc/0x204 | [cfa59bc8] [c03d324c] ata_identify_page_supported+0x68/0x130 | [...]
This is because sata_dwc_dma_xfer_complete() NULLs the dma_pending's next neighbour "chan" (a *dma_chan struct) in this '32' case right here (line ~735): > hsdevp->dma_pending[tag] = SATA_DWC_DMA_PENDING_NONE;
Then the next time, a dma gets issued; dma_dwc_xfer_setup() passes the NULL'd hsdevp->chan to the dmaengine_slave_config() which then causes the crash.
With this patch, SATA_DWC_QCMD_MAX is now set to ATA_MAX_QUEUE + 1. This avoids the OOB. But please note, there was a worthwhile discussion on what ATA_TAG_INTERNAL and ATA_MAX_QUEUE is. And why there should not be a "fake" 33 command-long queue size.
Ideally, the dw driver should account for the ATA_TAG_INTERNAL. In Damien Le Moal's words: "... having looked at the driver, it is a bigger change than just faking a 33rd "tag" that is in fact not a command tag at all."
BugLink: https://github.com/openwrt/openwrt/issues/9505
Patch / fix
- Linux Linux 4.19.238, 5.4.189, 5.10.111, 5.15.34, 5.16.20, 5.17.3, 5.18
- linux Debian 14, Debian 13, Debian 12 5.17.3-1
debian advisories DEBIAN-CVE-2022-49073
- linux Ubuntu 20.04 LTS 5.4.0-117.132
- linux Ubuntu 22.04 LTS 5.15.0-37.39
- linux-aws Ubuntu 20.04 LTS 5.4.0-1078.84
- linux-aws Ubuntu 22.04 LTS 5.15.0-1011.14
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1078.84
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1008.12
- linux-gke Ubuntu 22.04 LTS 5.15.0-1008.10
- linux-ibm Ubuntu 20.04 LTS 5.4.0-1026.29
ubuntu advisories UBUNTU-CVE-2022-49073
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-64kb SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS, Enterprise Storage 7.1 5.3.18-150300.59.201.1
- kernel-syms SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.201.1
- kernel-source SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.201.1
- kernel-default SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Micro 5.2 +5 more 5.3.18-150300.59.201.1
- kernel-preempt SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.201.1
- kernel-obs-build SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +1 more 5.3.18-150300.59.201.1
- kernel-default-base SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE Micro 5.2 +3 more 5.3.18-150300.59.201.1.150300.18.120.1
- kernel-64kb SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS, SLE High Performance Computing 15 SP5-ESPOS 5.14.21-150500.55.100.1
suse advisories SUSE-SU-2025:1263-1SUSE-SU-2025:1241-1SUSE-SU-2025:1194-1SUSE-SU-2025:1183-1SUSE-SU-2025:1176-1SUSE-SU-2025:1027-1
- git.kernel.org/stable/c/596c7efd69aae94f4b0e91172b075eb197958b99 commit
- git.kernel.org/stable/c/55e1465ba79562a191708a40eeae3f8082a209e3 commit
- git.kernel.org/stable/c/fc629224aa62f23849cae83717932985ac51232d commit
- git.kernel.org/stable/c/8a05a6952ecd59aaa62cbdcdaf523ae2c8f436e8 commit
- git.kernel.org/stable/c/234c0132f76f0676d175757f61b0025191a3d935 commit
- git.kernel.org/stable/c/3a8751c0d4e24129e72dcec0139e99833b13904a commit
- git.kernel.org/stable/c/7aa8104a554713b685db729e66511b93d989dd6a commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2022-49073 updated
kernel: ata: sata_dwc_460ex: Fix crash due to OOB write
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 20% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-787 Out-of-bounds Write
- Technology feeds
References
-
git.kernel.org
/stable/c/596c7efd69aae94f4b0e91172b075eb197958b99
patch
-
git.kernel.org
/stable/c/55e1465ba79562a191708a40eeae3f8082a209e3
patch
-
git.kernel.org
/stable/c/fc629224aa62f23849cae83717932985ac51232d
patch
-
git.kernel.org
/stable/c/8a05a6952ecd59aaa62cbdcdaf523ae2c8f436e8
patch
-
git.kernel.org
/stable/c/234c0132f76f0676d175757f61b0025191a3d935
patch
-
git.kernel.org
/stable/c/3a8751c0d4e24129e72dcec0139e99833b13904a
patch
-
git.kernel.org
/stable/c/7aa8104a554713b685db729e66511b93d989dd6a
patch
Sources
- CVE List CVE-2022-49073
- NVD CVE-2022-49073
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.