Alerta crítica: Se ha publicado la vulnerabilidad CVE-2026-82531, que afecta al motor de plantillas Smarty en sus versiones anteriores a 4.5.8 y 5.x anteriores a 5.8.5. Esta falla de inyección de código permite a un atacante ejecutar código arbitrario en el servidor mediante datos asignados especialmente diseñados, con una puntuación CVSS de 9.2. Se recomienda encarecidamente actualizar a las versiones corregidas o aplicar las mitigaciones publicadas por el fabricante de inmediato.

Resumen ejecutivo
| CVE | CVE-2026-82531 |
|---|---|
| Fabricante | smarty-php |
| Producto | Smarty |
| Fecha de publicación | 2026-10-06 |
| Severidad | CRÍTICA |
| Puntuación CVSS | 9.2 (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) |
| Prioridad | 215 (crítica, según RyzerBot) |
| Acción recomendada | Revisar el aviso oficial del fabricante y aplicar la actualización o mitigación publicada. |
Qué es la vulnerabilidad
CVE-2026-82531 es una vulnerabilidad de inyección de código (CWE-94) en el motor de plantillas Smarty, una de las bibliotecas de plantillas PHP más utilizadas en el ecosistema web. El fallo reside en el manejo de la herencia de plantillas mediante el mecanismo extends: y la generación de archivos de caché PHP.
Según la descripción publicada por NVD y CVE.org, durante el procesamiento de plantillas que utilizan herencia multi-componente, el valor nocache_hash de nivel superior nunca se restaura correctamente, quedando en estado nulo. Esta condición permite que un atacante, mediante datos asignados a la plantilla que contengan un marcador SmartyNocache forjado, consiga que dicho marcador se copie literalmente en el archivo de caché PHP regenerado. Al incluirse este archivo de caché, el código PHP arbitrario incrustado se ejecuta en el servidor, lo que deriva en una ejecución remota de código (RCE).
La vulnerabilidad afecta a Smarty en versiones anteriores a 4.5.8 y a la rama 5.x en versiones anteriores a 5.8.5. Las versiones 4.5.8 y 5.8.5 ya incluyen la corrección, según los commits y releases publicados por el fabricante en GitHub.
La clasificación inicial del recolector la cataloga como crítica, con una puntuación CVSS de 9.2 sobre 10. El vector CVSS indica que la explotación es posible de forma remota sin necesidad de autenticación, con un impacto alto en confidencialidad, integridad y disponibilidad. Aunque requiere cierta complejidad de ataque (AT:P), el impacto potencial justifica una actuación inmediata por parte de los administradores de sistemas que utilicen Smarty en sus aplicaciones.
Es importante señalar que, según las fuentes consultadas, no se han publicado indicadores de compromiso (IOC) estructurados para esta vulnerabilidad, por lo que la detección de una posible explotación debe basarse en la revisión de los archivos de caché generados por Smarty y en el monitoreo de actividad anómala en los servidores afectados.
Productos y versiones vulnerables
Según la información publicada por CVE.org y NVD, la vulnerabilidad afecta al motor de plantillas Smarty de smarty-php en las siguientes ramas de versiones:
| Producto | Versiones afectadas | Versiones corregidas |
|---|---|---|
| Smarty (smarty-php) | Versiones anteriores a 4.5.8 | 4.5.8 |
| Smarty (smarty-php) | Rama 5.x, versiones anteriores a 5.8.5 | 5.8.5 |
El fabricante ha publicado las versiones corregidas v4.5.8 y v5.8.5 en el repositorio oficial de GitHub, junto con el aviso de seguridad GHSA-3w63-v7pm-cq9x. Se recomienda encarecidamente actualizar a estas versiones o a las posteriores disponibles.
Impacto y riesgo
La vulnerabilidad, clasificada como CRÍTICA con una puntuación CVSS de 9.2 (vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N), permite a un atacante remoto sin autenticación previa ejecutar código arbitrario en el servidor.
El fallo reside en el mecanismo de herencia de plantillas extends: de Smarty. Durante el procesamiento de plantillas multicomponente, el nocache_hash de nivel superior no se restaura correctamente, quedando en estado nulo. Un atacante que pueda suministrar datos asignados a la plantilla (por ejemplo, a través de parámetros de usuario que se pasan a variables de Smarty) puede incluir un marcador SmartyNocache falsificado. Este marcador se copia literalmente en el archivo PHP de caché regenerado, de modo que al incluirse dicho archivo se ejecuta el código PHP arbitrario inyectado.
Las implicaciones de seguridad son graves:
- Compromiso total del servidor: ejecución remota de código con los privilegios del proceso PHP.
- Confidencialidad, integridad y disponibilidad afectadas de forma crítica (VC:H/VI:H/VA:H).
- Superficie de ataque amplia: cualquier aplicación que utilice Smarty con herencia de plantillas y que procese datos controlables por el atacante es potencialmente explotable.
Dado que Smarty es una librería ampliamente utilizada en aplicaciones PHP, el riesgo real para entornos de producción es elevado. Se recomienda priorizar la actualización de manera inmediata.
Estado de explotación conocida
Las fuentes consultadas (NVD y CVE.org) no publican información sobre explotación activa de esta vulnerabilidad en el momento de la publicación del aviso. No se ha confirmado ni documentado ningún exploit público o campaña de ataque que haga uso de CVE-2026-82531.
No obstante, la naturaleza de la vulnerabilidad (inyección de código en archivos de caché) y su criticidad hacen que la explotación sea plausible en escenarios donde los datos asignados a las plantillas sean controlables por el atacante. La ausencia de exploits conocidos no debe retrasar la aplicación de los parches.
Indicadores de compromiso (IOC)
No se han extraído indicadores de compromiso (IOC) estructurados de las fuentes consultadas. El campo enrichment.ioc aparece vacío, por lo que no se dispone de IOC publicados para esta vulnerabilidad.
Dado que la explotación se basa en la inyección de código en archivos de caché PHP, se recomienda a los administradores revisar los archivos de caché generados por Smarty en busca de contenido anómalo o marcadores SmartyNocache inesperados. No obstante, esta es una medida complementaria y no sustituye la actualización a las versiones corregidas.
Cómo comprobar si estás afectado
Para determinar si tu instalación es vulnerable a CVE-2026-82531, debes verificar la versión exacta de Smarty que estás utilizando en tu aplicación. La vulnerabilidad afecta a todas las versiones de Smarty anteriores a 4.5.8 y a las versiones de la rama 5.x anteriores a 5.8.5.
El método más fiable es revisar el archivo de definición de versión del propio Smarty, normalmente ubicado en la raíz del paquete. Busca un archivo llamado Smarty.class.php o SmartyBC.class.php y localiza la constante SMARTY_VERSION. También puedes revisar el archivo composer.json o composer.lock de tu proyecto si gestionas dependencias con Composer, ya que ahí se registrará la versión exacta instalada.
Si utilizas un framework o CMS que integra Smarty como dependencia, como algunos módulos de PrestaShop o aplicaciones personalizadas, deberás verificar la versión a través del gestor de dependencias o consultando la documentación del propio framework. En entornos donde Smarty se ha instalado manualmente, la ruta típica del archivo de versión es /libs/Smarty.class.php.
Además, es importante revisar si tu aplicación utiliza la funcionalidad de herencia de plantillas mediante {extends} o componentes multi-plantilla, ya que la vulnerabilidad solo es explotable cuando se emplea esta característica. Si no usas herencia de plantillas, el riesgo de explotación se reduce considerablemente, aunque la actualización sigue siendo recomendada.
Mitigación y actualización
La acción principal y más efectiva es actualizar Smarty a una versión corregida. Según los datos publicados por el fabricante y NVD, las versiones que resuelven esta vulnerabilidad son 4.5.8 para la rama 4.x y 5.8.5 para la rama 5.x. Estas versiones están disponibles en el repositorio oficial de GitHub del proyecto.
Si por cualquier razón no puedes actualizar de inmediato, debes considerar las siguientes medidas temporales:
- Deshabilitar la compilación de plantillas en caché si tu aplicación lo permite, forzando la recompilación en cada petición. Esto no elimina la vulnerabilidad, pero dificulta la explotación al no reutilizar archivos de caché generados con datos manipulados.
- Restringir el acceso a los directorios de caché de Smarty mediante permisos del sistema de archivos, asegurando que solo el proceso de la aplicación pueda leer y escribir en ellos.
- Validar y sanitizar cualquier dato asignado a las plantillas que provenga de entradas de usuario, especialmente si se utiliza en combinación con herencia de plantillas. No obstante, esta medida no es suficiente por sí sola, ya que la inyección se produce a través de marcadores
SmartyNocacheforjados que pueden estar ocultos en datos aparentemente benignos.
Es fundamental revisar el aviso oficial del fabricante en el advisory GHSA-3w63-v7pm-cq9x para obtener instrucciones detalladas y cualquier recomendación adicional que hayan publicado. La actualización debe realizarse en todos los entornos: desarrollo, pruebas y producción, y se recomienda verificar la integridad de los archivos tras la actualización.
Checklist para administradores
- ☐ Identificar todas las aplicaciones y entornos que utilizan Smarty.
- ☐ Verificar la versión exacta de Smarty en cada entorno mediante
SMARTY_VERSIONocomposer.lock. - ☐ Confirmar si la aplicación utiliza herencia de plantillas con
{extends}o componentes multi-plantilla. - ☐ Actualizar Smarty a la versión 4.5.8 o 5.8.5 según corresponda en todos los entornos.
- ☐ Revisar los archivos de caché generados antes de la actualización y eliminarlos si se sospecha que puedan contener datos manipulados.
- ☐ Verificar que la actualización no introduce regresiones en la funcionalidad de las plantillas.
- ☐ Monitorizar los registros de acceso y errores en busca de intentos de explotación relacionados con la inyección de código.
- ☐ Revisar el advisory GHSA-3w63-v7pm-cq9x y las notas de la versión para conocer cualquier detalle adicional.
- ☐ Documentar el proceso de actualización y las decisiones tomadas para futuras referencias.
Preguntas frecuentes
¿Qué es Smarty y por qué es importante esta vulnerabilidad?
Smarty es un motor de plantillas para PHP muy utilizado para separar la lógica de presentación del código de aplicación. Esta vulnerabilidad es crítica porque permite a un atacante ejecutar código arbitrario en el servidor, lo que puede comprometer completamente la aplicación y los datos asociados.
¿Cómo puedo saber si mi versión de Smarty es vulnerable?
Debes comprobar la versión instalada. Si es anterior a 4.5.8 en la rama 4.x, o anterior a 5.8.5 en la rama 5.x, es vulnerable. La versión se puede consultar en el archivo Smarty.class.php o en el gestor de dependencias.
¿La vulnerabilidad se puede explotar sin autenticación?
Según el vector CVSS publicado, la explotación no requiere privilegios de red (PR:N) y la interacción con el usuario no es necesaria (UI:N). Sin embargo, la explotación depende de que la aplicación permita asignar datos controlados por el atacante a las plantillas y de que se utilice la herencia de plantillas.
¿Qué debo hacer si no puedo actualizar Smarty inmediatamente?
Si no puedes actualizar, debes aplicar las medidas de mitigación descritas, como deshabilitar la caché de compilación, restringir permisos en los directorios de caché y validar los datos asignados a las plantillas. Estas medidas reducen el riesgo pero no eliminan la vulnerabilidad, por lo que la actualización sigue siendo prioritaria.
¿Existen exploits públicos para esta vulnerabilidad?
No se ha publicado información sobre exploits públicos en las fuentes consultadas. La ausencia de exploits conocidos no debe interpretarse como una reducción del riesgo, dado el alto impacto potencial.
¿La actualización de Smarty puede romper mi aplicación?
Las versiones corregidas son lanzamientos de mantenimiento que resuelven la vulnerabilidad sin cambios disruptivos en la API. No obstante, se recomienda probar la actualización en un entorno de desarrollo o pruebas antes de desplegarla en producción.
Fuentes oficiales
Para obtener información detallada y actualizada, consulta las siguientes referencias oficiales:

















