Aviso sobre vulnerabilidades en hojas de cálculo

Se sabe que existen vulnerabilidades que afectan a las aplicaciones de hojas de cálculo como Microsoft Excel y OpenOffice Calc desde hace más de 5 años, y desafortunadamente todavía parecen estar sin resolver.

Aunque no es una vulnerabilidad de WordPress o de sus plugins, debido a que debe haber muchos usuarios de nuestros productos que corren el riesgo de estas vulnerabilidades, y el daño podría ser enorme, creo que debería escribir un artículo aquí para alertarles del problema.

Para aprovecharse de estas vulnerabilidades, los atacantes te envían un archivo de hoja de cálculo que incluye fórmulas elaboradas de forma maliciosa en sus celdas, y te llevan a abrirlo con una aplicación de hoja de cálculo en tu ordenador. Si las condiciones son correctas, la aplicación de hoja de cálculo interpreta las fórmulas y, en el peor de los casos, dejará que los atacantes ejecuten comandos arbitrarios del sistema operativo en tu equipo.

No solo los archivos de Excel, sino también otros formatos de hojas de cálculo, incluidos los CSV, son conocidos por ser utilizados para tales aprovechamientos.

Algunos plugins de WordPress tienen la capacidad de exportar sus datos como un archivo CSV. Para mitigar el riesgo sería deseable que tales plugins hicieran imposible la producción de datos de celdas que puedan ser interpretados como fórmulas.

Flamingo es uno de esos plugins. Flamingo desde la versión 2.1.1 en adelante, escapa los datos del campo CSV que comienzan con =, +, -, o @. Verás campos como el siguiente si se ha aplicado este escape:

(Alerta de seguridad: Se ha detectado contenido sospechoso. Ver https://contactform7.com/es/heads-up-about-spreadsheet-vulnerabilities/ para más detalles.) =cmd|’ /C calc’!A0

Sin embargo, como no todos los campos que comienzan con =, +, -, o @ son necesariamente fórmulas maliciosas, este escape podría ser solo una gentileza fuera de lugar en algunos casos. Si quieres desactivarla, o usar otro texto como prefijo, puedes usar el gancho de filtro flamingo_csv_field_prefix para hacerlo. Por ejemplo, la siguiente línea de código añade una cadena vacía como prefijo a un campo de datos:

add_filter( 'flamingo_csv_field_prefix', '__return_empty_string' );

Ten en cuenta que esto no remedia el problema de la vulnerabilidad en sí mismo. Las vulnerabilidades existen en las aplicaciones de hojas de cálculo que usas, y los atacantes pueden seguir usando muchos otros canales para enviarte archivos de hojas de cálculo maliciosos.

Para protegerte a ti mismo, ten en cuenta:

  1. Mantén las aplicaciones actualizadas y usa solo las últimas versiones seguras.
  2. No abras los archivos de las aplicaciones si no estás seguro de los datos que contienen.