Bug 248353 (CVE-2007-3732) - CVE-2007-3732 kernel: Reset %fs early in iret_exc
Summary: CVE-2007-3732 kernel: Reset %fs early in iret_exc
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2007-3732
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-07-16 12:03 UTC by Marcel Holtmann
Modified: 2019-09-29 12:20 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2010-04-16 02:02:37 UTC
Embargoed:


Attachments (Terms of Use)

Description Marcel Holtmann 2007-07-16 12:03:17 UTC
The iret_exc fixup path, run when iret generates an exception due to bogus
%cs:%eip or %ss:%esp on the way back to user mode, has been broken since the
%fs-percpu-current changes.  The kernel's %fs needs to be restored before the
call in TRACE_IRQS_ON and before enabling interrupts, so that "current"
references work.  Without this, "current" used in the window between iret_exc
and the middle of error_code where %fs is reset, would crash (or get bogus
values, perhaps exploitable in fancy ways).

Comment 2 Eugene Teo (Security Response) 2010-04-16 02:02:37 UTC
Upstream commit:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a10d9a71bafd3a283da240d2868e71346d2aef6f

Commit a10d9a71 is the fix for CVE-2007-3732. When this patch was backported to the -stable kernel, it was wrongly listed as CVE-2007-3731. And when we were dealing with CVE-2007-3731, our developer backported this patch too even though we have filed a separate bug for CVE-2007-3732, so this was fixed. What a mess, but I'm glad we cleared this up afterall.

https://bugzilla.redhat.com/show_bug.cgi?id=248324#c4
https://bugzilla.redhat.com/show_bug.cgi?id=248324#c7


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