lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025022655-CVE-2024-58007-123c@gregkh>
Date: Wed, 26 Feb 2025 18:11:01 -0800
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2024-58007: soc: qcom: socinfo: Avoid out of bounds read of serial number

Description
===========

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

soc: qcom: socinfo: Avoid out of bounds read of serial number

On MSM8916 devices, the serial number exposed in sysfs is constant and does
not change across individual devices. It's always:

  db410c:/sys/devices/soc0$ cat serial_number
  2644893864

The firmware used on MSM8916 exposes SOCINFO_VERSION(0, 8), which does not
have support for the serial_num field in the socinfo struct. There is an
existing check to avoid exposing the serial number in that case, but it's
not correct: When checking the item_size returned by SMEM, we need to make
sure the *end* of the serial_num is within bounds, instead of comparing
with the *start* offset. The serial_number currently exposed on MSM8916
devices is just an out of bounds read of whatever comes after the socinfo
struct in SMEM.

Fix this by changing offsetof() to offsetofend(), so that the size of the
field is also taken into account.

The Linux kernel CVE team has assigned CVE-2024-58007 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.4 with commit efb448d0a3fca01bb987dd70963da6185b81751e and fixed in 6.1.129 with commit 9c88b3a3fae4d60641c3a45be66269d00eff33cd
	Issue introduced in 5.4 with commit efb448d0a3fca01bb987dd70963da6185b81751e and fixed in 6.6.78 with commit 47470acd719d45c4c8c418c07962f74cc995652b
	Issue introduced in 5.4 with commit efb448d0a3fca01bb987dd70963da6185b81751e and fixed in 6.12.14 with commit 407c928305c1a37232a63811c400ef616f85ccbc
	Issue introduced in 5.4 with commit efb448d0a3fca01bb987dd70963da6185b81751e and fixed in 6.13.3 with commit 0a92feddae0634a0b87c04b19d343f6af97af700
	Issue introduced in 5.4 with commit efb448d0a3fca01bb987dd70963da6185b81751e and fixed in 6.14-rc1 with commit 22cf4fae6660b6e1a583a41cbf84e3046ca9ccd0

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-58007
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	drivers/soc/qcom/socinfo.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/9c88b3a3fae4d60641c3a45be66269d00eff33cd
	https://git.kernel.org/stable/c/47470acd719d45c4c8c418c07962f74cc995652b
	https://git.kernel.org/stable/c/407c928305c1a37232a63811c400ef616f85ccbc
	https://git.kernel.org/stable/c/0a92feddae0634a0b87c04b19d343f6af97af700
	https://git.kernel.org/stable/c/22cf4fae6660b6e1a583a41cbf84e3046ca9ccd0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ