CVE-2022-48795

See a problem?
Source
https://nvd.nist.gov/vuln/detail/CVE-2022-48795
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-48795.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2022-48795
Related
Published
2024-07-16T12:15:04Z
Modified
2024-09-18T03:22:36.633647Z
Summary
[none]
Details

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

parisc: Fix data TLB miss in sbaunmapsg

Rolf Eike Beer reported the following bug:

[1274934.746891] Bad Address (null pointer deref?): Code=15 (Data TLB miss fault) at addr 0000004140000018 [1274934.746891] CPU: 3 PID: 5549 Comm: cmake Not tainted 5.15.4-gentoo-parisc64 #4 [1274934.746891] Hardware name: 9000/785/C8000 [1274934.746891] [1274934.746891] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI [1274934.746891] PSW: 00001000000001001111111000001110 Not tainted [1274934.746891] r00-03 000000ff0804fe0e 0000000040bc9bc0 00000000406760e4 0000004140000000 [1274934.746891] r04-07 0000000040b693c0 0000004140000000 000000004a2b08b0 0000000000000001 [1274934.746891] r08-11 0000000041f98810 0000000000000000 000000004a0a7000 0000000000000001 [1274934.746891] r12-15 0000000040bddbc0 0000000040c0cbc0 0000000040bddbc0 0000000040bddbc0 [1274934.746891] r16-19 0000000040bde3c0 0000000040bddbc0 0000000040bde3c0 0000000000000007 [1274934.746891] r20-23 0000000000000006 000000004a368950 0000000000000000 0000000000000001 [1274934.746891] r24-27 0000000000001fff 000000000800000e 000000004a1710f0 0000000040b693c0 [1274934.746891] r28-31 0000000000000001 0000000041f988b0 0000000041f98840 000000004a171118 [1274934.746891] sr00-03 00000000066e5800 0000000000000000 0000000000000000 00000000066e5800 [1274934.746891] sr04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [1274934.746891] [1274934.746891] IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000406760e8 00000000406760ec [1274934.746891] IIR: 48780030 ISR: 0000000000000000 IOR: 0000004140000018 [1274934.746891] CPU: 3 CR30: 00000040e3a9c000 CR31: ffffffffffffffff [1274934.746891] ORIGR28: 0000000040acdd58 [1274934.746891] RP(r2): sbaunmapsg+0xac/0x118 [1274934.746891] Backtrace: [1274934.746891] [<00000000402740cc>] dmaunmapsgattrs+0x6c/0x70 [1274934.746891] [<000000004074d6bc>] scsidmaunmap+0x54/0x60 [1274934.746891] [<00000000407a3488>] mptscsihiodone+0x150/0xd70 [1274934.746891] [<0000000040798600>] mptinterrupt+0x168/0xa68 [1274934.746891] [<0000000040255a48>] _handleirqeventpercpu+0xc8/0x278 [1274934.746891] [<0000000040255c34>] handleirqeventpercpu+0x3c/0xd8 [1274934.746891] [<000000004025ecb4>] handlepercpuirq+0xb4/0xf0 [1274934.746891] [<00000000402548e0>] generichandleirq+0x50/0x70 [1274934.746891] [<000000004019a254>] callonstack+0x18/0x24 [1274934.746891] [1274934.746891] Kernel panic - not syncing: Bad Address (null pointer deref?)

The bug is caused by overrunning the sglist and incorrectly testing sgdmalen(sglist) before nents. Normally this doesn't cause a crash, but in this case sglist crossed a page boundary. This occurs in the following code:

while (sg_dma_len(sglist) && nents--) {

The fix is simply to test nents first and move the decrement of nents into the loop.

References

Affected packages

Debian:11 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.10.103-1

Affected versions

5.*

5.10.46-4
5.10.46-5
5.10.70-1~bpo10+1
5.10.70-1
5.10.84-1
5.10.92-1~bpo10+1
5.10.92-1
5.10.92-2
5.10.103-1~bpo10+1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:12 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.16.11-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.16.11-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}