A survey of recent kernel vulnerabilities
| 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.
| Index entries for this article | |
|---|---|
| Kernel | Security/Vulnerabilities |