CVE-2024-57874
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
11/01/2025
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRL<br />
<br />
Currently tagged_addr_ctrl_set() doesn&#39;t initialize the temporary &#39;ctrl&#39;<br />
variable, and a SETREGSET call with a length of zero will leave this<br />
uninitialized. Consequently tagged_addr_ctrl_set() will consume an<br />
arbitrary value, potentially leaking up to 64 bits of memory from the<br />
kernel stack. The read is limited to a specific slot on the stack, and<br />
the issue does not provide a write mechanism.<br />
<br />
As set_tagged_addr_ctrl() only accepts values where bits [63:4] zero and<br />
rejects other values, a partial SETREGSET attempt will randomly succeed<br />
or fail depending on the value of the uninitialized value, and the<br />
exposure is significantly limited.<br />
<br />
Fix this by initializing the temporary value before copying the regset<br />
from userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG,<br />
NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existing<br />
value of the tagged address ctrl will be retained.<br />
<br />
The NT_ARM_TAGGED_ADDR_CTRL regset is only visible in the<br />
user_aarch64_view used by a native AArch64 task to manipulate another<br />
native AArch64 task. As get_tagged_addr_ctrl() only returns an error<br />
value when called for a compat task, tagged_addr_ctrl_get() and<br />
tagged_addr_ctrl_set() should never observe an error value from<br />
get_tagged_addr_ctrl(). Add a WARN_ON_ONCE() to both to indicate that<br />
such an error would be unexpected, and error handlnig is not missing in<br />
either case.
Impact
Base Score 3.x
6.10
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10 (including) | 5.10.231 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.174 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.120 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.66 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1152dd13845efde5554f80c7e1233bae1d26bd3e
- https://git.kernel.org/stable/c/1370cf3eb5495d70e00547598583a4cd45b40b99
- https://git.kernel.org/stable/c/1c176f5155ee6161fee6f416b64aa50394d3f220
- https://git.kernel.org/stable/c/96035c0093db258975b8887676afe59a64c34a72
- https://git.kernel.org/stable/c/abd614bbfcee73247495bd9472da8f85ac83546e
- https://git.kernel.org/stable/c/ca62d90085f4af36de745883faab9f8a7cbb45d3
- https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html
- https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html



