97 líneas
2.2 KiB
Markdown
97 líneas
2.2 KiB
Markdown
# Reporte de Vulnerabilidades de Seguridad en net/
|
|
|
|
## 1. VALIDACIÓN INSUFICIENTE EN RAW SOCKETS
|
|
**Archivo**: net/ipv4/raw.c líneas 380-400
|
|
**Problema**: Campo IHL no validado adecuadamente
|
|
**Impacto**: DoS, corrupción de memoria
|
|
|
|
```c
|
|
iphlen = iph->ihl * 4; // Sin validación mínima
|
|
if (iphlen > length) // Solo verifica máximo, no mínimo
|
|
goto error_free;
|
|
```
|
|
|
|
## 2. VALIDACIÓN DE LONGITUD EN OPCIONES IP
|
|
**Archivo**: net/ipv4/ip_options.c líneas 279-286
|
|
**Problema**: Validación inconsistente de optlen
|
|
|
|
```c
|
|
if (optlen < 2 || optlen > l) {
|
|
pp_ptr = optptr;
|
|
goto error;
|
|
}
|
|
// Pero luego:
|
|
if (optlen < 3) { // Validación adicional inconsistente
|
|
pp_ptr = optptr + 1;
|
|
goto error;
|
|
}
|
|
```
|
|
|
|
## 3. MANEJO DE DATOS DE USUARIO EN NETLINK
|
|
**Archivo**: net/netlink/af_netlink.c línea 1871
|
|
**Problema**: memcpy_from_msg sin validación previa completa
|
|
|
|
```c
|
|
if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
|
|
kfree_skb(skb);
|
|
goto out;
|
|
}
|
|
```
|
|
|
|
## 4. VALIDACIÓN DE TAMAÑO EN PACKET SOCKETS
|
|
**Archivo**: net/packet/af_packet.c línea 2093
|
|
**Problema**: Potencial overflow en skb_put
|
|
|
|
```c
|
|
err = memcpy_from_msg(skb_put(skb, len), msg, len);
|
|
```
|
|
|
|
## 5. VERIFICACIÓN DE LÍMITES EN TCP
|
|
**Archivo**: net/ipv4/tcp.c líneas 3774-3776
|
|
**Problema**: Validación mínima pero no máxima
|
|
|
|
```c
|
|
if (optlen < sizeof(int))
|
|
return -EINVAL;
|
|
// Falta validación de límite superior
|
|
```
|
|
|
|
## RECOMENDACIONES DE MITIGACIÓN:
|
|
|
|
### Para Raw Sockets:
|
|
```c
|
|
// Añadir validación mínima
|
|
if (iph->ihl < 5 || iph->ihl > 15) {
|
|
err = -EINVAL;
|
|
goto error_free;
|
|
}
|
|
```
|
|
|
|
### Para Opciones IP:
|
|
```c
|
|
// Validación consistente
|
|
if (optlen < MIN_OPT_LEN || optlen > MAX_OPT_LEN) {
|
|
goto error;
|
|
}
|
|
```
|
|
|
|
### Para Netlink:
|
|
```c
|
|
// Validar límites antes de memcpy
|
|
if (len > MAX_NETLINK_MSG_SIZE) {
|
|
err = -EMSGSIZE;
|
|
goto out;
|
|
}
|
|
```
|
|
|
|
## IMPACTO POTENCIAL:
|
|
- Denegación de servicio (DoS)
|
|
- Corrupción de memoria del kernel
|
|
- Bypass de validaciones de seguridad
|
|
- Potencial escalada de privilegios (en casos extremos)
|
|
- Ataques de red remotos
|
|
|
|
## NIVEL DE SEVERIDAD: ALTO
|
|
Estas vulnerabilidades pueden ser explotadas remotamente a través de la red
|
|
y afectar la estabilidad del sistema.
|