Linux 出現可從執行記憶體中取得可攻擊弱點
包括從
cpuset_tasks_read 開始到copy_to_user 等功能模組 都存在可能因記憶體緩衝區溢位問題,並可能將所存在的重要資訊如帳號密碼等資訊一併洩漏

Public Advisory: 06.07.07 
Linux Kernel cpuset tasks Information Disclosure Vulnerability


I. BACKGROUND
Linux is a clone of the UNIX operating system, written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Internet. The cpuset functionality allows process to be assigned to processors on multi-processor machines.

II. DESCRIPTION
Local exploitation of an information disclosure vulnerability within the Linux Kernel allows attackers to obtain sensitive information from kernel memory.

This vulnerability specifically exists in the "cpuset_tasks_read" function. This function is responsible for supplying user-land processes with data when they read from the /dev/cpuset/tasks file. The code excerpt below shows the problem area.

  1754          if (*ppos + nbytes > ctr->bufsz)
  1755                  nbytes = ctr->bufsz - *ppos;
  1756          if (copy_to_user(buf, ctr->buf + *ppos, nbytes))

By reading from an offset (*ppos) larger than the contents of the file, an attacker can cause an integer underflow to occur in the subtraction on line 1755. This will result in the "copy_to_user" function on line 1756 to be called with a memory address located at a lower address than the start of the intended buffer. This memory could potentially contain sensitive information such as security tokens or passwords.

III. ANALYSIS
Exploitation of this vulnerability allows attackers to obtain sensitive information from kernel memory.

In order to exploit this vulnerability, an attacker would need access to open the /dev/cpuset/tasks file. It is important to note that this file does not exist unless the cpuset file system has been mounted. Additionally, this functionality is not included by default in a vanilla kernel build.

Furthermore, because of checks at the VFS layer and in the 'copy_to_user()' function, an attacker cannot use arbitrary values. However, on 32-bit systems it is easily exploitable.

IV. DETECTION
iDefense has confirmed the existence of this vulnerability in version 2.6.20 of the Linux Kernel as installed with Fedora CORE 6. It is suspected that previous versions, at least until 2.6.12, are also vulnerable.

V. WORKAROUND
In order to prevent exploitation of this vulnerability, discontinue use of the cpuset file system. This can be accomplished by un-mounting the file system using the "umount" command.

VI. VENDOR RESPONSE
The Linux kernel team has released versions 2.6.20.13 and 2.6.21.4 to address this vulnerability. More information can be found via the following URLs.

http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.20.13
http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.21.4

VII. CVE INFORMATION
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2007-2875 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.

VIII. DISCLOSURE TIMELINE
04/27/2007 Initial vendor notification
06/04/2007 Second vendor notification
06/04/2007 Initial vendor response
06/07/2007 Coordinated public disclosure


IX. CREDIT
The discoverer of this vulnerability wishes to remain anonymous.


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 jason0936 的頭像
    jason0936

    J漾諸事會社

    jason0936 發表在 痞客邦 留言(0) 人氣()