Debilidad en la implementación del driver wireless Orinoco en Linux

Existe una debilidad de diseño en la implementación de la función 'orinoco_ioctl_set_auth' de 'drivers/net/wireless/orinoco/wext.c' en el driver wireless Orinoco.

sto provoca la habilitació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 podemos 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.

Entradas populares de este blog

El mejor software libre para tu Terminal de Punto de Venta (TPV/POS)

Canaima 3 vs Windows 7: Una comparación detallada de ambos Sistemas Operativos

Cómo utilizar un USB como memoria RAM