Bug 2373388 (CVE-2025-38067) - CVE-2025-38067 kernel: rseq: Fix segfault on registration when rseq_cs is non-zero
Summary: CVE-2025-38067 kernel: rseq: Fix segfault on registration when rseq_cs is non...
Keywords:
Status: NEW
Alias: CVE-2025-38067
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-06-18 10:04 UTC by OSIDB Bzimport
Modified: 2025-06-20 14:31 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2025-06-18 10:04:58 UTC
In the Linux kernel, the following vulnerability has been resolved:

rseq: Fix segfault on registration when rseq_cs is non-zero

The rseq_cs field is documented as being set to 0 by user-space prior to
registration, however this is not currently enforced by the kernel. This
can result in a segfault on return to user-space if the value stored in
the rseq_cs field doesn't point to a valid struct rseq_cs.

The correct solution to this would be to fail the rseq registration when
the rseq_cs field is non-zero. However, some older versions of glibc
will reuse the rseq area of previous threads without clearing the
rseq_cs field and will also terminate the process if the rseq
registration fails in a secondary thread. This wasn't caught in testing
because in this case the leftover rseq_cs does point to a valid struct
rseq_cs.

What we can do is clear the rseq_cs field on registration when it's
non-zero which will prevent segfaults on registration and won't break
the glibc versions that reuse rseq areas on thread creation.

Comment 1 Avinash Hanwate 2025-06-20 14:24:25 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2025061837-CVE-2025-38067-b173@gregkh/T


Note You need to log in before you can comment on or make changes to this bug.