CVE-2006-5755

MEDIUM4.9/ 10.0
Share:
Published: December 31, 2006 at 05:00 AM
Modified: April 9, 2025 at 12:30 AM
Source: secalert@redhat.com

Vulnerability Description

Linux kernel before 2.6.18, when running on x86_64 systems, does not properly save or restore EFLAGS during a context switch, which allows local users to cause a denial of service (crash) by causing SYSENTER to set an NT flag, which can trigger a crash on the IRET of the next task.

CVSS Metrics

Base Score
4.9
Severity
MEDIUM
Vector String
AV:L/AC:L/Au:N/C:N/I:N/A:C

Weaknesses (CWE)

NVD-CWE-Other
Source: nvd@nist.gov

AI Security Analysis

01 // Technical Summary

Critical vulnerability in older Linux kernels (pre-2.6.18) on x86_64 systems allows local attackers to trigger a denial-of-service (DoS) condition. This flaw stems from improper handling of the EFLAGS register during context switches, potentially leading to system crashes. Successful exploitation renders the system unusable, requiring a reboot.

02 // Vulnerability Mechanism

Step 1: Trigger SYSENTER: A local, unprivileged user process executes the SYSENTER instruction, potentially setting the NT flag in the EFLAGS register. This can be achieved through crafted system calls or by exploiting other vulnerabilities to gain control of the execution flow. Step 2: Context Switch: The kernel performs a context switch, moving from the malicious process to another process. This switch should save and restore the EFLAGS register. Step 3: Incorrect EFLAGS Restoration: The kernel incorrectly restores the EFLAGS register for the new process. Because the NT flag was set by the previous process, it is now incorrectly restored for the new process. Step 4: IRET Execution: The new process attempts to return from an interrupt or system call using the IRET instruction. Because the NT flag is set, the IRET instruction attempts to perform an invalid operation. Step 5: Kernel Panic: The invalid operation triggered by IRET causes a kernel panic, resulting in a system crash and denial of service.

03 // Deep Technical Analysis

The vulnerability lies in the x86_64 architecture's context switching mechanism within the Linux kernel. Specifically, the kernel fails to correctly save and restore the EFLAGS register, which contains crucial processor flags. The flaw occurs when a malicious process leverages the SYSENTER instruction to set the NT (Nested Task) flag within EFLAGS. During the subsequent context switch to another task, the kernel's IRET (Interrupt Return) instruction attempts to restore the incorrect EFLAGS value, including the NT flag. This leads to an invalid state, triggering a kernel panic and system crash. The root cause is a missing or incorrect handling of the EFLAGS register's state during the context switch process, specifically the failure to preserve and restore the NT flag's state correctly.

References & Intelligence

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git%3Ba=commitdiff%3Bh=658fdbef66e5e9be79b457edc2cbbb3add840aa9
Source: secalert@redhat.com
http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git%3Ba=commitdiff%3Bh=658fdbef66e5e9be79b457edc2cbbb3add840aa9
Source: secalert@redhat.com
http://secunia.com/advisories/24098
Source: secalert@redhat.com
http://secunia.com/advisories/25691
Source: secalert@redhat.com
http://secunia.com/advisories/26620
Source: secalert@redhat.com
http://secunia.com/advisories/26994
Source: secalert@redhat.com
http://secunia.com/advisories/32485
Source: secalert@redhat.com
http://www.debian.org/security/2007/dsa-1381
Source: secalert@redhat.com
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.18
Source: secalert@redhat.com
http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.18-git13.log
Source: secalert@redhat.com
http://www.mandriva.com/security/advisories?name=MDKSA-2007:171
Source: secalert@redhat.com
http://www.redhat.com/support/errata/RHSA-2008-0957.html
Source: secalert@redhat.com
http://www.securityfocus.com/archive/1/471457
Source: secalert@redhat.com
http://www.securityfocus.com/bid/26060
Source: secalert@redhat.com
http://www.ubuntu.com/usn/usn-416-1
Source: secalert@redhat.com
https://oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A9554
Source: secalert@redhat.com
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git%3Ba=commitdiff%3Bh=658fdbef66e5e9be79b457edc2cbbb3add840aa9
Source: af854a3a-2127-422b-91ae-364da2661108
http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git%3Ba=commitdiff%3Bh=658fdbef66e5e9be79b457edc2cbbb3add840aa9
Source: af854a3a-2127-422b-91ae-364da2661108
http://secunia.com/advisories/24098
Source: af854a3a-2127-422b-91ae-364da2661108
http://secunia.com/advisories/25691
Source: af854a3a-2127-422b-91ae-364da2661108
http://secunia.com/advisories/26620
Source: af854a3a-2127-422b-91ae-364da2661108
http://secunia.com/advisories/26994
Source: af854a3a-2127-422b-91ae-364da2661108
http://secunia.com/advisories/32485
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.debian.org/security/2007/dsa-1381
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.18
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.18-git13.log
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.mandriva.com/security/advisories?name=MDKSA-2007:171
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.redhat.com/support/errata/RHSA-2008-0957.html
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.securityfocus.com/archive/1/471457
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.securityfocus.com/bid/26060
Source: af854a3a-2127-422b-91ae-364da2661108
http://www.ubuntu.com/usn/usn-416-1
Source: af854a3a-2127-422b-91ae-364da2661108
https://oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A9554
Source: af854a3a-2127-422b-91ae-364da2661108
CVE-2006-5755 - MEDIUM Severity (4.9) | Free CVE Database | 4nuxd