¿Por qué Import Users From CSV With Meta estuvo unos días “cerrado” en el repositorio de plugins de WordPress?

Hace tres sábados recibí un correo del equipo de Plugins de WordPress, habían retirado a Import Users From CSV With Meta del repositorio de plugins, por un problema de seguridad. La verdad es que de primeras además de la preocupación, me quedé algo confundido porque hacían referencia a un problema que no era de ese plugin sino de otro. En concreto hablaban de este artículo de un bug de seguridad en WooCommerce Checkout Manager. Entendí que sería un error el enlace y me puse a buscar en ese blog dedicado a la seguridad en WordPress (en los plugins de WordPress más concretamente) llamado Plugin Vulnerabilities. Y en efecto, había un enlace previo donde sí que aparecía un error de seguridad (ya resuelto) de este plugin.

¿Cómo empezó todo?

Unos días antes, un usuario del plugin había encontrado la posibilidad de ejecutar código JavaScript desde el CSV. Es decir, alguien que usara el plugin, podía usar un CSV diseñado específicamente para atacar, de forma que se ejecutara código JS tras la importación. La verdad es que el peligro de esta brecha era mínimo porque este plugin solo lo usan administradores con CSV propios, pero aún así, rápidamente tapé el problema que podía dar lugar al ataque de tipo XSS.

Al hacer el commit indiqué que había resuelto un problema de seguridad.

Escriben un post sobre otro error de seguridad sin avisarnos

Aquí está lo que considero más grave. Si encuentras un problema de seguridad, lo primero es avisar a los desarrolladores para que lo arreglen, y luego publicar. Parece que en Plugin Vulnerabilities eso no lo tienen en cuenta, se excusan diciendo algo así como que en WordPress.org no les dejan escribir porque reportan vulnerabilidades en los foros (lógico). Deberían buscar una forma de contacto en el plugin (en este caso es bien sencillo además).

El artículo sale, algún responsable de plugins de WordPress.org lo lee y directamente cierran el plugin.

¿Cómo volver a conseguir que pongan el plugin otra vez disponible?

Básicamente hace falta hacer dos cosas:

  1. La más urgente es tapar el problema de seguridad que han encontrado la gente “de fuera”
  2. La segunda es tapar cualquier otro “agujero” que pudiera dar lugar a un agujero de seguridad

Si enviáis plugins al repositorio, sabréis que en la revisión inicial son verdaderamente concienzudos revisando una serie de cosas, sin embargo, una vez te autorizan el plugin esa revisión desaparece, y en este punto te piden revisar todo de nuevo. Me resulta curioso, porque cuando subí este plugin hace años, las revisiones eran muy laxas (los últimos que he subido, bien es cierto que me han pedido blindar).

Así que nada, tras unos días tapando agujeros y enviando correos y recibiendo respuestas, otra vez el plugin volvió a estar disponible y todos contentos de nuevo.

Concluyendo

Así que bueno, el resumen de todo esto es lo siguiente:

  1. Como habréis podido imaginar, ahora el plugin es mucho más seguro que antes
  2. Es cierto que a diferencia de otros plugins que han creado verdaderos problemas de seguridad (que se lo digan al de SMTP de wpecommerce) nuestros fallos eran leves y complicados de expltar
  3. Las medidas de seguridad a las que te obligan al dar de alta un plugin, luego no las vuelven a revisar, de forma que puede que haya plugins con verdaderos agujeros en el repositorio si nadie ha dado la voz de alarma
  4. Siempre que desarrollas un plugins debes tener muy en mente validar cualquier entrada o salida que tengas
  5. Ni que decir tiene que cualquier ajax o formulario debe estar respaldado por un nonce
  6. Y si tratas con ficheros como es el caso: usa las funciones estándar para manejarlos (que hacen muchas validaciones) y cuida los directory trasversal attack

Si te ha pasado algo parecido o necesitas ayuda para hacer más seguros tus plugins, dínoslo. A diferencia de otros plugins, este de importar usuarios no es rentable por sí mismo, pero es un pequeño gran proyecto de software libre que va camino del millón de descargas y con sus 30.000 instalaciones activas (camino de 40.000); pues cada minuto que estaba fuera del repositorio nos dolía.1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)


Cargando…

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Carrito

loader
Escríbenos al WhatsApp