CVE-2022-48870

tty: fix possible null-ptr-defer in spk_ttyio_release

published August 21, 2024

CVSS
—
EPSS
0%
Percentile
15.4
In the wild
Unconfirmed
What it is

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

tty: fix possible null-ptr-defer in spk_ttyio_release

Run the following tests on the qemu platform:

syzkaller:~# modprobe speakup_audptr

input: Speakup as /devices/virtual/input/input4

initialized device: /dev/synth, node (MAJOR 10, MINOR 125)

speakup 3.1.6: initialized

synth name on entry is: (null)

synth probe

spk_ttyio_initialise_ldisc failed because tty_kopen_exclusive returned

failed (errno -16), then remove the module, we will get a null-ptr-defer

problem, as follow:

syzkaller:~# modprobe -r speakup_audptr

releasing synth audptr

BUG: kernel NULL pointer dereference, address: 0000000000000080

#PF: supervisor write access in kernel mode

#PF: error_code(0x0002) - not-present page

PGD 0 P4D 0

Oops: 0002 [#1] PREEMPT SMP PTI

CPU: 2 PID: 204 Comm: modprobe Not tainted 6.1.0-rc6-dirty #1

RIP: 0010:mutex_lock+0x14/0x30

Call Trace:

<TASK>

spk_ttyio_release+0x19/0x70 [speakup]

synth_release.part.6+0xac/0xc0 [speakup]

synth_remove+0x56/0x60 [speakup]

__x64_sys_delete_module+0x156/0x250

? fpregs_assert_state_consistent+0x1d/0x50

do_syscall_64+0x37/0x90

entry_SYSCALL_64_after_hwframe+0x63/0xcd

</TASK>

Modules linked in: speakup_audptr(-) speakup

Dumping ftrace buffer:

in_synth->dev was not initialized during modprobe, so we add check

for in_synth->dev to fix this bug.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00250 · 15.4th percentile
Published
2024-08-21T06:10Z
EPSS history
Timeline
  • 21 AUG 06:10Z
    tty: fix possible null-ptr-defer in spk_ttyio_release
    cvelistv5