CVE-2026-14900 Ejecución remota de código en Cost Calculator Builder PRO vía 'orderDetails'
El plugin de WordPress no sanea el campo orderDetails[*].originalValue, que se inyecta en una fórmula evaluada con eval() en js_to_php(), permitiendo a atacantes no autenticados ejecutar código en el servidor. El nonce requerido se publica en cada página del front-end, por lo que es obtenible libremente. Afecta a versiones hasta la 4.0.3 inclusive.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/111,1 % · percentil 64
- Explotada activamenteNo confirmada
- Exploit públicoSí, 1
Afectados
StylemixThemes Cost Calculator Builder PRO
hasta 4.0.3
Qué hacer
- Verificá si usás Cost Calculator Builder PRO y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
- Priorizá la corrección: hay código de explotación público.
Exploits públicos
Código publicado por terceros. Puede ser malicioso: revisalo solo en un entorno aislado.
Calculadora CVSS
CVSS 3.1 · 9.8 CRÍTICA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadAlta
- IntegridadAlta
- DisponibilidadAlta
Descripción original
The Cost Calculator Builder PRO plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 4.0.3 via the js_to_php function. This is due to insufficient sanitization of the orderDetails[*].originalValue field, which is injected verbatim into a calculator formula string passed to PHP eval() inside js_to_php(), with the regex allow-list in evaluateFormula() only filtering alphanumeric tokens and leaving non-word punctuation characters intact. This makes it possible for unauthenticated attackers to execute code on the server. The only authentication barrier is a nonce check, but the required nonce is publicly emitted on every front-end page via the wp_head hook, making it freely obtainable by unauthenticated visitors. Payloads must be non-word XOR gadgets to bypass sanitization.
Referencias (2)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.