CORS, un muro invisible que muchos desarrolladores no saben levantar

Fuentes: Developers don't understand CORS

El mecanismo de seguridad CORS, siglas en inglés de Cross-Origin Resource Sharing, sigue siendo un misterio para buena parte de los desarrolladores web, según Jonathan Leitschuh, investigador de seguridad que destapó una vulnerabilidad crítica en Zoom. Leitschuh atribuye a esa falta de entendimiento el diseño chapucero del cliente de escritorio de Zoom, que abre un servidor web local en el puerto 19421 y transmite datos críticos codificados en las dimensiones de una imagen para esquivar las restricciones del navegador.

El autor, que trabaja como consultora full stack, asegura haber detectado el mismo problema en proyectos de toda clase y tamaño, y lo ilustra con la cantidad de preguntas mal planteadas sobre CORS en Stack Overflow, donde proliferan recetas que desactivan la política de mismo origen sin filtrar orígenes válidos. Como solución segura al caso de Zoom, propone una API REST con la cabecera Access-Control-Allow-Origin limitada a https://zoom.us y una Content Security Policy que impida la apertura automática de reuniones dentro de iframes. La vulnerabilidad permitió a cualquier página web activar la cámara y el micrófono del usuario sin su consentimiento explícito, un fallo que ya había afectado antes a otros proveedores.