CVE-2024-42136

cdrom: rearrange last_media_change check to avoid unintentional overflow

State
Published
Severity
Not scored
Published
Jul 30, 2024
Updated
May 11, 2026
Reserved
Jul 29, 2024

Read the record on cve.org

Description

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

cdrom: rearrange last_media_change check to avoid unintentional overflow

When running syzkaller with the newly reintroduced signed integer wrap sanitizer we encounter this splat:

[ 366.015950] UBSAN: signed-integer-overflow in ../drivers/cdrom/cdrom.c:2361:33 [ 366.021089] -9223372036854775808 - 346321 cannot be represented in type '__s64' (aka 'long long') [ 366.025894] program syz-executor.4 is using a deprecated SCSI ioctl, please convert it to SG_IO [ 366.027502] CPU: 5 PID: 28472 Comm: syz-executor.7 Not tainted 6.8.0-rc2-00035-gb3ef86b5a957 #1 [ 366.027512] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 366.027518] Call Trace: [ 366.027523] <TASK> [ 366.027533] dump_stack_lvl+0x93/0xd0 [ 366.027899] handle_overflow+0x171/0x1b0 [ 366.038787] ata1.00: invalid multi_count 32 ignored [ 366.043924] cdrom_ioctl+0x2c3f/0x2d10 [ 366.063932] ? __pm_runtime_resume+0xe6/0x130 [ 366.071923] sr_block_ioctl+0x15d/0x1d0 [ 366.074624] ? __pfx_sr_block_ioctl+0x10/0x10 [ 366.077642] blkdev_ioctl+0x419/0x500 [ 366.080231] ? __pfx_blkdev_ioctl+0x10/0x10 ...

Historically, the signed integer overflow sanitizer did not work in the kernel due to its interaction with `-fwrapv` but this has since been changed [1] in the newest version of Clang. It was re-enabled in the kernel with Commit 557f8c582a9ba8ab ("ubsan: Reintroduce signed overflow sanitizer").

Let's rearrange the check to not perform any arithmetic, thus not tripping the sanitizer.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 67f1e027c27054e641584655020a417eaac9cb3a to before 0c97527e916054acc4a46ffb02842988acb2e92bAffected
  • 67f1e027c27054e641584655020a417eaac9cb3a to before 3ee21e14c8c329168a0b66bab00ecd18f5d0dee3Affected
  • 67f1e027c27054e641584655020a417eaac9cb3a to before e809bc112712da8f7e15822674c6562da6cdf24cAffected
  • 67f1e027c27054e641584655020a417eaac9cb3a to before efb905aeb44b0e99c0e6b07865b1885ae0471ebfAffected
LinuxLinux
  • 5.16Affected
  • before 5.16Not affected
  • 6.1.98 through 6.1.*Not affected
  • 6.6.39 through 6.6.*Not affected
  • 6.9.9 through 6.9.*Not affected
  • 6.10 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.