A survey of recent kernel vulnerabilities
[Posted October 18, 2005 by corbet]
There has been a fairly long list of kernel vulnerabilities over the last
few months, but few of them have received much serious attention (outside
of the security groups at numerous distributors, who have been duly issuing
patches as the issues come up). Here's a selection of recent problems.
| CVE | Fixed-in | Description |
| CAN-2005-2098 |
2.6.12.5 2.6.13 |
The session keyring code had an error path which could
fail to release the session management semaphore. As a result, any
local user could cause processes to hang. |
| CAN-2005-2099 |
2.6.12.5 2.6.13 |
A keyring which failed to instantiate correctly could
leave behind a NULL pointer which would subsequently be dereferenced by
the kernel, causing an oops. |
| CAN-2005-1761 |
2.6.12.1 |
A ptrace() bug on the ia64 architecture
enables local denial of service attacks. (Patch) |
| CAN-2005-1913 |
2.6.12.1 |
The subthread exec code did not properly reparent
timers, leading to an oops caused by a local user when signals are
delivered to the wrong thread. (Patch) |
| CAN-2005-2456 |
2.6.13 |
The XFRM policy parser had an array overflow, enabling
denial of service attacks by local users. (Patch) |
| CAN-2005-2457 |
2.6.13 |
Mounting a malicious compressed ISO filesystem could
lead to a kernel oops |
CAN-2005-2458
CAN-2005-2459 |
2.6.13 |
Two zlib vulnerabilities which can be used to oops the
kernel and create denial of service attacks. |
| CAN-2005-2490 |
2.6.13.1 |
A race condition with user space allows a local
attacker to change the contents of a message passed to the 32-bit
version of sendmsg() on 64-bit architectures. The result is a
locally exploitable buffer overflow. (Patch) |
| CAN-2005-2492 |
2.6.13.1 |
An unchecked user-space dereference in
sendmsg() can be exploited to oops the system. (Patch) |
| CAN-2005-2548 |
2.6.9 |
A hostile UDP packet could cause the 8021Q VLAN code
to oops, leading to remote denial of service attacks.
|
| CAN-2005-2555 |
2.6.13 |
The kernel failed to restrict kernel socket policy
loading to administrative users. (Patch)
|
| CAN-2005-3044 |
2.6.13.2 |
The 32-bit ioctl() handler on x86-64 was
missing an fput() call. This error could be exploited by a
local attacker to corrupt kernel data structures. (Patch) |
| CAN-2005-3053 |
2.6.13 |
The set_mempolicy() system call, used to tweak memory
behavior on NUMA systems, did not properly check the
policy argument. A local attacker could, by supplying a
negative value, could cause a kernel oops. (Patch) |
| CAN-2005-3106 |
2.6.11 |
A race condition between core dumps and exec() could
enable a local attacker to deadlock the system. (Patch) |
| CAN-2005-3107 |
2.6.11 |
Another local deadlock related to core dumps and
ptrace(). (Patch) |
| CAN-2005-3108 |
2.6.11 |
The right sort of I/O mapping could create information
leaks and kernel oopses on the x86-64 platform. It is hard to see
how this one could be exploited by an unprivileged user. (Patch) |
| CAN-2005-3109 |
2.6.11 |
A maliciously created HFS filesystem could oops the
kernel, if the system was configured to allow users to mount such
filesystems. (Patch) |
| CAN-2005-3110 |
2.6.12 |
A race condition in the netfilter ebtables module can
cause a kernel oops on SMP systems. (Patch). |
| CAN-2005-3119 |
2.6.13.4 |
A memory leak in the key request code could be used in
denial of service attacks. (Patch) |
| CAN-2005-3180 |
2.6.13.4 |
The orinoco driver can leak information onto the net. (Patch) |
| CAN-2005-3181 |
2.6.13.4 |
A memory leak in the audit code can be used for denial of service
attacks. (Patch) |
That is a long list of vulnerabilities. The fact that almost all of them
are "only" denial of service problems, and that only one of those is truly
remotely exploitable, is of limited consolation.
One may well wonder why the kernel is the source of so many security holes,
far more than any other package on the system. The complexity of the
kernel and the environment in which it runs, the fact that many
often-harmless bugs (such as memory leaks) turn into security issues for
the kernel, and the high level of auditing which is done on kernel code are
all part of the answer to that question. Unfortunately, the flow of
security issues in the kernel is unlikely to stop anytime soon.
(
Log in to post comments)