CVE-2022-49073

Source
https://nvd.nist.gov/vuln/detail/CVE-2022-49073
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-49073.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-49073
Downstream
Related
Published
2025-02-26T01:54:37Z
Modified
2025-10-15T19:48:14.331932Z
Summary
ata: sata_dwc_460ex: Fix crash due to OOB write
Details

In the Linux kernel, the following vulnerability has been resolved:

ata: satadwc460ex: Fix crash due to OOB write

the driver uses libata's "tag" values from in various arrays. Since the mentioned patch bumped the ATATAGINTERNAL to 32, the value of the SATADWCQCMD_MAX needs to account for that.

Otherwise ATATAGINTERNAL 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 PAGESIZE=4K PowerPC 44x Platform | CPU: 0 PID: 362 Comm: scsieh1 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] satadwcqcissue+0x14c/0x254 | LR [c03d27e8] ataqcissue+0x1c8/0x2dc | Call Trace: | [cfa59a08] [c003f4e0] _cancelworktimer+0x124/0x194 (unreliable) | [cfa59a78] [c03d27e8] ataqcissue+0x1c8/0x2dc | [cfa59a98] [c03d2b3c] ataexecinternalsg+0x240/0x524 | [cfa59b08] [c03d2e98] ataexecinternal+0x78/0xe0 | [cfa59b58] [c03d30fc] atareadlogpage.part.38+0x1dc/0x204 | [cfa59bc8] [c03d324c] ataidentifypagesupported+0x68/0x130 | [...]

This is because satadwcdmaxfercomplete() NULLs the dmapending's next neighbour "chan" (a *dmachan struct) in this '32' case right here (line ~735):

hsdevp->dmapending[tag] = SATADWCDMAPENDING_NONE;

Then the next time, a dma gets issued; dmadwcxfersetup() passes the NULL'd hsdevp->chan to the dmaengineslave_config() which then causes the crash.

With this patch, SATADWCQCMDMAX is now set to ATAMAXQUEUE + 1. This avoids the OOB. But please note, there was a worthwhile discussion on what ATATAGINTERNAL and ATAMAX_QUEUE is. And why there should not be a "fake" 33 command-long queue size.

Ideally, the dw driver should account for the ATATAGINTERNAL. 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

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
596c7efd69aae94f4b0e91172b075eb197958b99
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
55e1465ba79562a191708a40eeae3f8082a209e3
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
fc629224aa62f23849cae83717932985ac51232d
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
8a05a6952ecd59aaa62cbdcdaf523ae2c8f436e8
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
234c0132f76f0676d175757f61b0025191a3d935
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
3a8751c0d4e24129e72dcec0139e99833b13904a
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
28361c403683c2b00d4f5e76045f3ccd299bf99d
Fixed
7aa8104a554713b685db729e66511b93d989dd6a

Affected versions

v4.*

v4.17
v4.17-rc5
v4.17-rc6
v4.17-rc7
v4.18
v4.18-rc1
v4.18-rc2
v4.18-rc3
v4.18-rc4
v4.18-rc5
v4.18-rc6
v4.18-rc7
v4.18-rc8
v4.19
v4.19-rc1
v4.19-rc2
v4.19-rc3
v4.19-rc4
v4.19-rc5
v4.19-rc6
v4.19-rc7
v4.19-rc8
v4.19.1
v4.19.10
v4.19.100
v4.19.101
v4.19.102
v4.19.103
v4.19.104
v4.19.105
v4.19.106
v4.19.107
v4.19.108
v4.19.109
v4.19.11
v4.19.110
v4.19.111
v4.19.112
v4.19.113
v4.19.114
v4.19.115
v4.19.116
v4.19.117
v4.19.118
v4.19.119
v4.19.12
v4.19.120
v4.19.121
v4.19.122
v4.19.123
v4.19.124
v4.19.125
v4.19.126
v4.19.127
v4.19.128
v4.19.129
v4.19.13
v4.19.130
v4.19.131
v4.19.132
v4.19.133
v4.19.134
v4.19.135
v4.19.136
v4.19.137
v4.19.138
v4.19.139
v4.19.14
v4.19.140
v4.19.141
v4.19.142
v4.19.143
v4.19.144
v4.19.145
v4.19.146
v4.19.147
v4.19.148
v4.19.149
v4.19.15
v4.19.150
v4.19.151
v4.19.152
v4.19.153
v4.19.154
v4.19.155
v4.19.156
v4.19.157
v4.19.158
v4.19.159
v4.19.16
v4.19.160
v4.19.161
v4.19.162
v4.19.163
v4.19.164
v4.19.165
v4.19.166
v4.19.167
v4.19.168
v4.19.169
v4.19.17
v4.19.170
v4.19.171
v4.19.172
v4.19.173
v4.19.174
v4.19.175
v4.19.176
v4.19.177
v4.19.178
v4.19.179
v4.19.18
v4.19.180
v4.19.181
v4.19.182
v4.19.183
v4.19.184
v4.19.185
v4.19.186
v4.19.187
v4.19.188
v4.19.189
v4.19.19
v4.19.190
v4.19.191
v4.19.192
v4.19.193
v4.19.194
v4.19.195
v4.19.196
v4.19.197
v4.19.198
v4.19.199
v4.19.2
v4.19.20
v4.19.200
v4.19.201
v4.19.202
v4.19.203
v4.19.204
v4.19.205
v4.19.206
v4.19.207
v4.19.208
v4.19.209
v4.19.21
v4.19.210
v4.19.211
v4.19.212
v4.19.213
v4.19.214
v4.19.215
v4.19.216
v4.19.217
v4.19.218
v4.19.219
v4.19.22
v4.19.220
v4.19.221
v4.19.222
v4.19.223
v4.19.224
v4.19.225
v4.19.226
v4.19.227
v4.19.228
v4.19.229
v4.19.23
v4.19.230
v4.19.231
v4.19.232
v4.19.233
v4.19.234
v4.19.235
v4.19.236
v4.19.237
v4.19.24
v4.19.25
v4.19.26
v4.19.27
v4.19.28
v4.19.29
v4.19.3
v4.19.30
v4.19.31
v4.19.32
v4.19.33
v4.19.34
v4.19.35
v4.19.36
v4.19.37
v4.19.38
v4.19.39
v4.19.4
v4.19.40
v4.19.41
v4.19.42
v4.19.43
v4.19.44
v4.19.45
v4.19.46
v4.19.47
v4.19.48
v4.19.49
v4.19.5
v4.19.50
v4.19.51
v4.19.52
v4.19.53
v4.19.54
v4.19.55
v4.19.56
v4.19.57
v4.19.58
v4.19.59
v4.19.6
v4.19.60
v4.19.61
v4.19.62
v4.19.63
v4.19.64
v4.19.65
v4.19.66
v4.19.67
v4.19.68
v4.19.69
v4.19.7
v4.19.70
v4.19.71
v4.19.72
v4.19.73
v4.19.74
v4.19.75
v4.19.76
v4.19.77
v4.19.78
v4.19.79
v4.19.8
v4.19.80
v4.19.81
v4.19.82
v4.19.83
v4.19.84
v4.19.85
v4.19.86
v4.19.87
v4.19.88
v4.19.89
v4.19.9
v4.19.90
v4.19.91
v4.19.92
v4.19.93
v4.19.94
v4.19.95
v4.19.96
v4.19.97
v4.19.98
v4.19.99
v4.20
v4.20-rc1
v4.20-rc2
v4.20-rc3
v4.20-rc4
v4.20-rc5
v4.20-rc6
v4.20-rc7

v5.*

v5.0
v5.0-rc1
v5.0-rc2
v5.0-rc3
v5.0-rc4
v5.0-rc5
v5.0-rc6
v5.0-rc7
v5.0-rc8
v5.1
v5.1-rc1
v5.1-rc2
v5.1-rc3
v5.1-rc4
v5.1-rc5
v5.1-rc6
v5.1-rc7
v5.10
v5.10-rc1
v5.10-rc2
v5.10-rc3
v5.10-rc4
v5.10-rc5
v5.10-rc6
v5.10-rc7
v5.10.1
v5.10.10
v5.10.100
v5.10.101
v5.10.102
v5.10.103
v5.10.104
v5.10.105
v5.10.106
v5.10.107
v5.10.108
v5.10.109
v5.10.11
v5.10.110
v5.10.12
v5.10.13
v5.10.14
v5.10.15
v5.10.16
v5.10.17
v5.10.18
v5.10.19
v5.10.2
v5.10.20
v5.10.21
v5.10.22
v5.10.23
v5.10.24
v5.10.25
v5.10.26
v5.10.27
v5.10.28
v5.10.29
v5.10.3
v5.10.30
v5.10.31
v5.10.32
v5.10.33
v5.10.34
v5.10.35
v5.10.36
v5.10.37
v5.10.38
v5.10.39
v5.10.4
v5.10.40
v5.10.41
v5.10.42
v5.10.43
v5.10.44
v5.10.45
v5.10.46
v5.10.47
v5.10.48
v5.10.49
v5.10.5
v5.10.50
v5.10.51
v5.10.52
v5.10.53
v5.10.54
v5.10.55
v5.10.56
v5.10.57
v5.10.58
v5.10.59
v5.10.6
v5.10.60
v5.10.61
v5.10.62
v5.10.63
v5.10.64
v5.10.65
v5.10.66
v5.10.67
v5.10.68
v5.10.69
v5.10.7
v5.10.70
v5.10.71
v5.10.72
v5.10.73
v5.10.74
v5.10.75
v5.10.76
v5.10.77
v5.10.78
v5.10.79
v5.10.8
v5.10.80
v5.10.81
v5.10.82
v5.10.83
v5.10.84
v5.10.85
v5.10.86
v5.10.87
v5.10.88
v5.10.89
v5.10.9
v5.10.90
v5.10.91
v5.10.92
v5.10.93
v5.10.94
v5.10.95
v5.10.96
v5.10.97
v5.10.98
v5.10.99
v5.11
v5.11-rc1
v5.11-rc2
v5.11-rc3
v5.11-rc4
v5.11-rc5
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.15.1
v5.15.10
v5.15.11
v5.15.12
v5.15.13
v5.15.14
v5.15.15
v5.15.16
v5.15.17
v5.15.18
v5.15.19
v5.15.2
v5.15.20
v5.15.21
v5.15.22
v5.15.23
v5.15.24
v5.15.25
v5.15.26
v5.15.27
v5.15.28
v5.15.29
v5.15.3
v5.15.30
v5.15.31
v5.15.32
v5.15.33
v5.15.4
v5.15.5
v5.15.6
v5.15.7
v5.15.8
v5.15.9
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.16.1
v5.16.10
v5.16.11
v5.16.12
v5.16.13
v5.16.14
v5.16.15
v5.16.16
v5.16.17
v5.16.18
v5.16.19
v5.16.2
v5.16.3
v5.16.4
v5.16.5
v5.16.6
v5.16.7
v5.16.8
v5.16.9
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.17.1
v5.17.2
v5.18-rc1
v5.2
v5.2-rc1
v5.2-rc2
v5.2-rc3
v5.2-rc4
v5.2-rc5
v5.2-rc6
v5.2-rc7
v5.3
v5.3-rc1
v5.3-rc2
v5.3-rc3
v5.3-rc4
v5.3-rc5
v5.3-rc6
v5.3-rc7
v5.3-rc8
v5.4
v5.4-rc1
v5.4-rc2
v5.4-rc3
v5.4-rc4
v5.4-rc5
v5.4-rc6
v5.4-rc7
v5.4-rc8
v5.4.1
v5.4.10
v5.4.100
v5.4.101
v5.4.102
v5.4.103
v5.4.104
v5.4.105
v5.4.106
v5.4.107
v5.4.108
v5.4.109
v5.4.11
v5.4.110
v5.4.111
v5.4.112
v5.4.113
v5.4.114
v5.4.115
v5.4.116
v5.4.117
v5.4.118
v5.4.119
v5.4.12
v5.4.120
v5.4.121
v5.4.122
v5.4.123
v5.4.124
v5.4.125
v5.4.126
v5.4.127
v5.4.128
v5.4.129
v5.4.13
v5.4.130
v5.4.131
v5.4.132
v5.4.133
v5.4.134
v5.4.135
v5.4.136
v5.4.137
v5.4.138
v5.4.139
v5.4.14
v5.4.140
v5.4.141
v5.4.142
v5.4.143
v5.4.144
v5.4.145
v5.4.146
v5.4.147
v5.4.148
v5.4.149
v5.4.15
v5.4.150
v5.4.151
v5.4.152
v5.4.153
v5.4.154
v5.4.155
v5.4.156
v5.4.157
v5.4.158
v5.4.159
v5.4.16
v5.4.160
v5.4.161
v5.4.162
v5.4.163
v5.4.164
v5.4.165
v5.4.166
v5.4.167
v5.4.168
v5.4.169
v5.4.17
v5.4.170
v5.4.171
v5.4.172
v5.4.173
v5.4.174
v5.4.175
v5.4.176
v5.4.177
v5.4.178
v5.4.179
v5.4.18
v5.4.180
v5.4.181
v5.4.182
v5.4.183
v5.4.184
v5.4.185
v5.4.186
v5.4.187
v5.4.188
v5.4.19
v5.4.2
v5.4.20
v5.4.21
v5.4.22
v5.4.23
v5.4.24
v5.4.25
v5.4.26
v5.4.27
v5.4.28
v5.4.29
v5.4.3
v5.4.30
v5.4.31
v5.4.32
v5.4.33
v5.4.34
v5.4.35
v5.4.36
v5.4.37
v5.4.38
v5.4.39
v5.4.4
v5.4.40
v5.4.41
v5.4.42
v5.4.43
v5.4.44
v5.4.45
v5.4.46
v5.4.47
v5.4.48
v5.4.49
v5.4.5
v5.4.50
v5.4.51
v5.4.52
v5.4.53
v5.4.54
v5.4.55
v5.4.56
v5.4.57
v5.4.58
v5.4.59
v5.4.6
v5.4.60
v5.4.61
v5.4.62
v5.4.63
v5.4.64
v5.4.65
v5.4.66
v5.4.67
v5.4.68
v5.4.69
v5.4.7
v5.4.70
v5.4.71
v5.4.72
v5.4.73
v5.4.74
v5.4.75
v5.4.76
v5.4.77
v5.4.78
v5.4.79
v5.4.8
v5.4.80
v5.4.81
v5.4.82
v5.4.83
v5.4.84
v5.4.85
v5.4.86
v5.4.87
v5.4.88
v5.4.89
v5.4.9
v5.4.90
v5.4.91
v5.4.92
v5.4.93
v5.4.94
v5.4.95
v5.4.96
v5.4.97
v5.4.98
v5.4.99
v5.5
v5.5-rc1
v5.5-rc2
v5.5-rc3
v5.5-rc4
v5.5-rc5
v5.5-rc6
v5.5-rc7
v5.6
v5.6-rc1
v5.6-rc2
v5.6-rc3
v5.6-rc4
v5.6-rc5
v5.6-rc6
v5.6-rc7
v5.7
v5.7-rc1
v5.7-rc2
v5.7-rc3
v5.7-rc4
v5.7-rc5
v5.7-rc6
v5.7-rc7
v5.8
v5.8-rc1
v5.8-rc2
v5.8-rc3
v5.8-rc4
v5.8-rc5
v5.8-rc6
v5.8-rc7
v5.9
v5.9-rc1
v5.9-rc2
v5.9-rc3
v5.9-rc4
v5.9-rc5
v5.9-rc6
v5.9-rc7
v5.9-rc8

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.18.0
Fixed
4.19.238
Type
ECOSYSTEM
Events
Introduced
4.20.0
Fixed
5.4.189
Type
ECOSYSTEM
Events
Introduced
5.5.0
Fixed
5.10.111
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.34
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
5.16.20
Type
ECOSYSTEM
Events
Introduced
5.17.0
Fixed
5.17.3