Buscar este blog

martes, 11 de enero de 2011

Debilidad en la implementación del driver wireless Orinoco

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

Esto provoca la habilitación de la tarjeta si están habilitadas las contramedidas para TKIP haciendo los ataques más efectivos.

Un atacante remoto obtendría 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);
                }

La falla 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.

Si quieren más información pueden visitar: http://www.hispasec.com/unaaldia/4461

No hay comentarios:

Publicar un comentario