Array index overflow in the xfrm_sk_policy_insert function in xfrm_user.c in Linux kernel 2.6 allows local users to cause a denial of service (oops or deadlock) and possibly execute arbitrary code via a p->dir value that is larger than XFRM_POLICY_OUT, which is used as an index in the sock->sk_policy array.
The product does not properly acquire or release a lock on a resource, leading to unexpected resource state changes and behaviors.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Linux_kernel | Linux | 2.6.0 (including) | 2.6.0 (including) |
Red Hat Enterprise Linux 3 | RedHat | kernel-0:2.4.21-37.EL | * |
Red Hat Enterprise Linux 4 | RedHat | kernel-0:2.6.9-22.EL | * |
Kernel-source-2.4.27 | Ubuntu | dapper | * |
Kernel-source-2.4.27 | Ubuntu | edgy | * |
Linux-source-2.6.15 | Ubuntu | dapper | * |
Linux-source-2.6.17 | Ubuntu | edgy | * |
Locking is a type of synchronization behavior that ensures that multiple independently-operating processes or threads do not interfere with each other when accessing the same resource. All processes/threads are expected to follow the same steps for locking. If these steps are not followed precisely - or if no locking is done at all - then another process/thread could modify the shared resource in a way that is not visible or predictable to the original process. This can lead to data or memory corruption, denial of service, etc.