@ AndréBorie es correcto. Los compiladores y la configuración correspondiente no serán examinados por problemas de seguridad, por lo que en general no debe compilar código no confiable.
El riesgo es que se explote un desbordamiento del búfer o algún tipo de vulnerabilidad de ejecución de la biblioteca, y el atacante obtiene acceso a la cuenta de usuario (con suerte no root
!) que ejecutó el compilador. Incluso un hackeo que no sea root
es grave en la mayoría de los casos. Esto podría ser desarrollado en una pregunta separada.
Crear una VM es una buena solución, ya que contiene posibles vulnerabilidades para que no dañen el resto de tu aplicación.
Es mejor tener una plantilla de Linux VM que pueda iniciar según sea necesario con un entorno de compilador de pizarra limpio.
Lo ideal es que lo deseche después de cada uso, pero esto puede no ser estrictamente necesario. Si aísla la máquina virtual lo suficientemente bien, y desinfecta adecuadamente los datos de respuesta de la máquina virtual, lo que debería estar haciendo de todos modos; entonces lo peor que un hack podría hacer es hacer DoS o crear tiempos de compilación falsos. Estos no son problemas serios por sí mismos; al menos no tan serio como acceder al resto de su aplicación.
Sin embargo, restablecer la VM después de cada uso (es decir, en lugar de hacerlo a diario) proporciona un entorno más estable en general y puede mejorar la seguridad en ciertos casos de borde.
Algunos sistemas operativos proporcionan contenedores como alternativa a las máquinas virtuales. Este puede ser un enfoque más ágil, pero se aplican los mismos principios.