Linux Kernel 3.10.28/3.12.9/3.13.1 net/compat.c compat_sys_recvmmsg escalada de privilegios

| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 7.0 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad clasificada como crítica ha sido encontrada en Linux Kernel 3.10.28/3.12.9/3.13.1. Se ve afectada una función desconocida del archivo net/compat.c. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase escalada de privilegios. Esta vulnerabilidad se registra como CVE-2014-0038. El ataque debe abordarse localmente. También se encuentra disponible un exploit. Es recomendable implementar un parche para resolver este problema.
Detalles
Una vulnerabilidad clasificada como crítica fue encontrada en Linux Kernel 3.10.28/3.12.9/3.13.1 (Operating System). La función compat_sys_recvmmsg del archivo net/compat.c es afectada por esta vulnerabilidad. Por la manipulación de un input desconocido se causa una vulnerabilidad de clase escalada de privilegios. Esto tiene repercusión sobre la confidencialidad, integridad y disponibilidad.
El error fue descubierto el 2014-01-31. La vulnerabilidad fue publicada el 2014-01-28 por pageexec con identificación Bug 338594 con un mailinglist post (oss-sec) (confirmado). El advisory puede ser descargado de seclists.org. La vulnerabilidad es identificada como CVE-2014-0038. La vulnerabilidad es relativamente popular y aunque es muy compleja. El ataque debe ser hecho local. Para explotarla se requiere una autentificación. Los detalles técnicos asi como un exploit público son conocidos. El motivo de esta vulnerabilidad es esta parte del código:
asmlinkage long compat_sys_recvmmsg(int fd,
struct compat_mmsghdr __user *mmsg,
unsigned int vlen, unsigned int flags,
struct compat_timespec __user *timeout)
{
int datagrams;
struct timespec ktspec;
if (flags & MSG_CMSG_COMPAT)
return -EINVAL;
if (COMPAT_USE_64BIT_TIME)
return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
flags | MSG_CMSG_COMPAT,
(struct timespec *) timeout);Un exploit ha sido desarrollado por pageexec en ANSI C y publicado inmediatamente después del anuncio. El exploit puede ser descargado de exploit-db.com. Fue declarado como altamente funcional. Para el scanner Nessus se dispone de un plugin ID 72591 (Slackware 14.1 : kernel (SSA:2014-050-03)), que puede ayudar a determinar la existencia del riesgo analizado.
Aplicando un parche es posible eliminar el problema. El parche puede ser descargado de seclists.org. Una solución posible ha sido publicada 4 semanas después de la publicación de la vulnerabilidad. La vulnerabilidad se tratará con las siguientes líneas de código:
--- a/net/compat.c 2014-01-20 12:36:54.372997752 +0100
+++ b/net/compat.c 2014-01-28 02:06:59.265506171 +0100
@@ -780,22 +780,25 @@
if (flags & MSG_CMSG_COMPAT)
return -EINVAL;
- if (COMPAT_USE_64BIT_TIME)
- return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
- flags | MSG_CMSG_COMPAT,
- (struct timespec *) timeout);
-
if (timeout == NULL)
return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
flags | MSG_CMSG_COMPAT, NULL);
- if (get_compat_timespec(&ktspec, timeout))
+ if (COMPAT_USE_64BIT_TIME) {
+ if (copy_from_user(&ktspec, timeout, sizeof(ktspec)))
+ return -EFAULT;
+ } else if (get_compat_timespec(&ktspec, timeout))
return -EFAULT;
datagrams = __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
flags | MSG_CMSG_COMPAT, &ktspec);
- if (datagrams > 0 && put_compat_timespec(&ktspec, timeout))
- datagrams = -EFAULT;
+ if (datagrams > 0) {
+ if (COMPAT_USE_64BIT_TIME) {
+ if (copy_to_user(timeout, &ktspec, sizeof(ktspec)))
+ datagrams = -EFAULT;
+ } else if (put_compat_timespec(&ktspec, timeout))
+ datagrams = -EFAULT;
+ }
return datagrams;
}La vulnerabilidad también está documentado en las bases de datos Exploit-DB (31305), Tenable (72591), SecurityFocus (BID 64781†), OSVDB (102749†) y Secunia (SA56549†). Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Producto
Escribe
Proveedor
Nombre
Versión
Licencia
Sitio web
- Proveedor: https://www.kernel.org/
CPE 2.3
CPE 2.2
Video

CVSSv4
VulDB Vector: 🔍VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 7.8VulDB Puntuación meta temporal: 7.0
VulDB Puntuación base: 7.8
VulDB Puntuación temporal: 7.0
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 🔍
Explotación
Clase: Escalada de privilegiosCWE: CWE-20
CAPEC: 🔍
ATT&CK: 🔍
Físico: En parte
Local: Sí
Remoto: No
Disponibilidad: 🔍
Acceso: Público
Estado: Altamente funcional
Autor: pageexec
Lenguaje de programación: 🔍
Descargar: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
Predicción de precios: 🔍
Estimación del precio actual: 🔍
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 72591
Nessus Nombre: Slackware 14.1 : kernel (SSA:2014-050-03)
Nessus Archivo: 🔍
Nessus Riesgo: 🔍
Nessus Familia: 🔍
Nessus Context: 🔍
Nessus Port: 🔍
OpenVAS ID: 850566
OpenVAS Nombre: SuSE Update for kernel openSUSE-SU-2014:0204-1 (kernel)
OpenVAS Archivo: 🔍
OpenVAS Familia: 🔍
Qualys ID: 🔍
Qualys Nombre: 🔍
MetaSploit ID: recvmmsg_priv_esc.rb
MetaSploit Nombre: Linux Kernel recvmmsg Privilege Escalation
MetaSploit Archivo: 🔍
Exploit-DB: 🔍
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ParcheEstado: 🔍
Tiempo de reacción: 🔍
Hora de 0 días: 🔍
Tiempo de exposición: 🔍
Tiempo de retraso de explotación: 🔍
Parche: seclists.org
Línea de tiempo
2013-12-03 🔍2013-12-28 🔍
2014-01-28 🔍
2014-01-28 🔍
2014-01-31 🔍
2014-02-03 🔍
2014-02-06 🔍
2014-02-20 🔍
2014-02-20 🔍
2024-11-22 🔍
Fuentes
Proveedor: kernel.orgAviso: Bug 338594
Investigador: pageexec
Estado: Confirmado
Confirmación: 🔍
CVE: CVE-2014-0038 (🔍)
GCVE (CVE): GCVE-0-2014-0038
GCVE (VulDB): GCVE-100-12137
OVAL: 🔍
SecurityFocus: 64781 - Linux Kernel 'fpu-internal.h' Local Denial of Service Vulnerability
Secunia: 56549
OSVDB: 102749 - CVE-2014-0038 - Linux - Privilege Escalation Issue
scip Labs: https://www.scip.ch/en/?labs.20161013
Véase también: 🔍
Artículo
Fecha de creación: 2014-02-03 08:57Actualizado: 2024-11-22 16:32
Cambios: 2014-02-03 08:57 (92), 2019-07-29 20:37 (6), 2024-11-22 16:32 (19)
Completo: 🔍
Cache ID: 216:2EB:103
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.