CVE-2022-48795 json
parisc: Fix data TLB miss in sba_unmap_sg
published 2024-07-16 2 y ago modified 2026-06-17 4 mo ago also EUVD-2022-53674
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 15%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
parisc: Fix data TLB miss in sba_unmap_sg
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] ORIG_R28: 0000000040acdd58 [1274934.746891] IAOQ[0]: sba_unmap_sg+0xb0/0x118 [1274934.746891] IAOQ[1]: sba_unmap_sg+0xb4/0x118 [1274934.746891] RP(r2): sba_unmap_sg+0xac/0x118 [1274934.746891] Backtrace: [1274934.746891] [<00000000402740cc>] dma_unmap_sg_attrs+0x6c/0x70 [1274934.746891] [<000000004074d6bc>] scsi_dma_unmap+0x54/0x60 [1274934.746891] [<00000000407a3488>] mptscsih_io_done+0x150/0xd70 [1274934.746891] [<0000000040798600>] mpt_interrupt+0x168/0xa68 [1274934.746891] [<0000000040255a48>] __handle_irq_event_percpu+0xc8/0x278 [1274934.746891] [<0000000040255c34>] handle_irq_event_percpu+0x3c/0xd8 [1274934.746891] [<000000004025ecb4>] handle_percpu_irq+0xb4/0xf0 [1274934.746891] [<00000000402548e0>] generic_handle_irq+0x50/0x70 [1274934.746891] [<000000004019a254>] call_on_stack+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 sg_dma_len(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.
Patch / fix
- Linux Linux 4.9.303, 4.14.268, 4.19.231, 5.4.181, 5.10.102, 5.15.25, 5.16.11, 5.17
- linux Debian 14, Debian 13, Debian 12 5.16.11-1
debian advisories DEBIAN-CVE-2022-48795
- linux Ubuntu 18.04 LTS 4.15.0-177.186
- linux Ubuntu 20.04 LTS 5.4.0-110.124
- linux-aws Ubuntu 18.04 LTS 4.15.0-1128.137
- linux-aws Ubuntu 20.04 LTS 5.4.0-1073.78
- linux-gcp Ubuntu 20.04 LTS 5.4.0-1073.78
- linux-ibm Ubuntu 20.04 LTS 5.4.0-1021.23
- linux-iot Ubuntu 20.04 LTS 5.4.0-1004.6
- linux-kvm Ubuntu 18.04 LTS 4.15.0-1114.117
ubuntu advisories UBUNTU-CVE-2022-48795
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
- git.kernel.org/stable/c/f23f0444ead4d941165aa82ce2fcbb997dc00e97 commit
- git.kernel.org/stable/c/de75676ee99bf9f25b1124ff301b3f7b8ba597d4 commit
- git.kernel.org/stable/c/867e50231c7605547d9334904d70a181f39f2d9e commit
- git.kernel.org/stable/c/efccc9b0c7e28d0eb7918a236e59f60dc23db4c3 commit
- git.kernel.org/stable/c/f8f519d7df66c334b5e08f896ac70ee3b53add3b commit
- git.kernel.org/stable/c/8c8e949ae81e7f5ab58f9f9f8e9b573b93173dd2 commit
- git.kernel.org/stable/c/e40ae3133ed87d6d526f3c8fc6a5f9a2d72dcdbf commit
- git.kernel.org/stable/c/b7d6f44a0fa716a82969725516dc0b16bc7cd514 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-48795 updated cvss 5.5
kernel: parisc: Fix data TLB miss in sba_unmap_sg
-
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 morenot 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
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.24% chance of exploitation in the next 30 days, higher than 15% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected products
- Linux Linux
Classification
- Technology feeds
References
-
git.kernel.org
/stable/c/f23f0444ead4d941165aa82ce2fcbb997dc00e97
patch
-
git.kernel.org
/stable/c/de75676ee99bf9f25b1124ff301b3f7b8ba597d4
patch
-
git.kernel.org
/stable/c/867e50231c7605547d9334904d70a181f39f2d9e
patch
-
git.kernel.org
/stable/c/efccc9b0c7e28d0eb7918a236e59f60dc23db4c3
patch
-
git.kernel.org
/stable/c/f8f519d7df66c334b5e08f896ac70ee3b53add3b
patch
-
git.kernel.org
/stable/c/8c8e949ae81e7f5ab58f9f9f8e9b573b93173dd2
patch
-
git.kernel.org
/stable/c/e40ae3133ed87d6d526f3c8fc6a5f9a2d72dcdbf
patch
-
git.kernel.org
/stable/c/b7d6f44a0fa716a82969725516dc0b16bc7cd514
patch
Sources
- CVE List CVE-2022-48795
- NVD CVE-2022-48795
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.