CVE-2024-2435
For an attacker with pre-existing access to send a signal to a workflow, the attacker can make the signal name a script that executes when a victim views that signal. The XSS is in the timeline page displaying the workflow execution details of the workflow that was sent the crafted signal. Access to send a signal to a workflow is determined by how you configured the authorizer on your server. This includes any entity with permission to directly call SignalWorkflowExecution or SignalWithStartWorkflowExecution, or any entity can deploy a worker that has access to call workflow progress APIs (specifically RespondWorkflowTaskCompleted).
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L
- Puntuación base: 4.3
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.39%
- Percentil entre todas las CVEs puntuadas: 31
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (2)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-79
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2024-2435",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2024-2435",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-04-02T18:46:48.461273Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security@temporal.io",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 4.3,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L",
"integrityImpact": "LOW",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "LOW",
"privilegesRequired": "HIGH",
"confidentialityImpact": "LOW"
},
"impactScore": 3.4,
"exploitabilityScore": 0.9
}
]
},
"affected": [
{
"source": "security@temporal.io",
"affectedData": [
{
"repo": "https://github.com/temporalio/ui-server",
"vendor": "Temporal OSS",
"modules": [
"Timeline view"
],
"product": "ui-server",
"versions": [
{
"status": "affected",
"version": "2.16.2",
"lessThan": "2.25.0",
"versionType": "semver"
}
],
"packageName": "temporalio/ui",
"collectionURL": "https://hub.docker.com/r/temporalio/ui",
"defaultStatus": "unaffected"
}
]
}
],
"published": "2024-04-02T17:15:46.610",
"references": [
{
"url": "https://github.com/temporalio/ui-server/releases/tag/v2.25.0",
"source": "security@temporal.io"
},
{
"url": "https://github.com/temporalio/ui-server/releases/tag/v2.25.0",
"source": "af854a3a-2127-422b-91ae-364da2661108"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security@temporal.io",
"description": [
{
"lang": "en",
"value": "CWE-79"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "For an attacker with pre-existing access to send a signal to a workflow, the attacker can make the signal name a script that executes when a victim views that signal. The XSS is in the timeline page displaying the workflow execution details of the workflow that was sent the crafted signal.\nAccess to send a signal to a workflow is determined by how you configured the authorizer on your server. This includes any entity with permission to directly call SignalWorkflowExecution or SignalWithStartWorkflowExecution, or any entity can deploy a worker that has access to call workflow progress APIs (specifically RespondWorkflowTaskCompleted).\n"
},
{
"lang": "es",
"value": "Para que un atacante con acceso preexistente envíe una señal a un flujo de trabajo, el atacante puede hacer que la señal nombre un script que se ejecute cuando una víctima vea esa señal. El XSS se encuentra en la página de la línea de tiempo y muestra los detalles de ejecución del flujo de trabajo al que se envió la señal diseñada. El acceso para enviar una señal a un flujo de trabajo está determinado por cómo configuró el autorizador en su servidor. Esto incluye cualquier entidad con permiso para llamar directamente a SignalWorkflowExecution o SignalWithStartWorkflowExecution, o cualquier entidad que pueda implementar un trabajador que tenga acceso para llamar a las API de progreso del flujo de trabajo (específicamente RespondWorkflowTaskCompleted)."
}
],
"lastModified": "2026-06-17T07:24:32.000",
"sourceIdentifier": "security@temporal.io"
}