El driver "wireless Orinoco" tiene un fallo de diseño en la implementación de la función 'orinoco_ioctl_set_auth' de 'drivers/net/wireless/orinoco/wext.c'
- Este fallo provoca la activación de la tarjeta si están habilitadas las contramedidas para TKIP haciendo los ataques más efectivos.
- Un atacante remoto podría obtener ventaja en ciertos ataques si este error de diseño está presente.
Como se puede observar en el parche introducido:
if (param->value) {
priv->tkip_cm_active = 1;
- ret = hermes_enable_port(hw, 0);
+ ret = hermes_disable_port(hw, 0);
} else {
priv->tkip_cm_active = 0;
- ret = hermes_disable_port(hw, 0);
+ ret = hermes_enable_port(hw, 0);
}
El fallo es un simple error de lógica al intentar justo lo contrario de lo que se pretendía en el diseño original.
La acción correcta a tomar es si priv->tkip_cm_active = 1, es decir que las contramedidas para TKIP estén activas, deshabilitar la tarjeta.
Fuente: Hispasec