PT-2025-18568 · Linux+1 · Linux Kernel+1
Published
2022-11-10
·
Updated
2025-05-02
·
CVE-2022-49851
CVSS v3.1
7.1
High
| Vector | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H |
Name of the Vulnerable Software and Affected Versions
Linux kernel versions prior to 6.0.0-rc1-00001-g0d9d6953d834
Description
A vulnerability in the Linux kernel has been resolved, specifically in the RISC-V architecture. The issue arises from the setup of reserved memory using the "early" copy of the device tree, which causes a kernel panic when trying to use the buffer's name. This is due to the pointer to reserved memory regions using the early, pre-virtual-memory address. The vulnerability is triggered when the
of reserved mem lookup() function is called, and the vsnprintf() function is used with the incorrect address. The estimated number of potentially affected devices is not provided.Technical details about the exploitation include:
- The
early init fdt scan reserved mem()function takes no arguments as it operates oninitial boot params, which is populated byearly init dt verify(). - The
early init dt verify()function is called twice in the RISC-V architecture, once directly insetup arch()and once indirectly in the boot process byparse dtb()when it callsearly init dt scan nodes(). - The first call uses
dtb early vato setinitial boot params, which is not usable later in the boot process whenearly init fdt scan reserved mem()is called. - The
vsnprintf()function is used with the incorrect address, causing the kernel panic.
Recommendations
To resolve the issue, move the
early init fdt scan reserved mem() function further along the boot sequence, after the direct call to early init dt verify() in setup arch(), so that the names use the correct virtual memory addresses. This should work equally in cases where CONFIG BUILTIN DTB is set or not, as unflatted and copy device tree() also updates initial boot params.Exploit
Fix
Out of bounds Read
Buffer Overflow
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Astra Linux
Linux Kernel