{"id":"CVE-2024-2435","aliases":["EUVD-2024-1157","GHSA-8f25-w7qj-r7hc","GO-2024-2675"],"status":"published","title":"Stored XSS in Timeline View","description":"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).","severity":{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00394,"percentile":0.33956,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2024-04-02T16:40:24Z","modified":"2026-10-28T02:31:13Z","fixes":[{"ecosystem":"Go","package":"github.com/temporalio/ui-server/v2","fixed_in":["2.25.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/temporalio/ui-server/v2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.25.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/temporalio/ui-server/v2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.25.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/temporalio/ui-server","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/temporalio/ui-server/v2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.25.0"}]}]}],"products":[{"vendor":"temporal oss","product":"ui-server"}],"references":[{"url":"https://github.com/temporalio/ui-server/releases/tag/v2.25.0","tags":["release-notes","x_transferred","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-2435","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-8f25-w7qj-r7hc","tags":["advisory"]},{"url":"https://hub.docker.com/r/temporalio/ui","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/2xxx/CVE-2024-2435.json","tags":["advisory"]},{"url":"https://github.com/temporalio/ui-server","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2024-2435","title":"Stored XSS in Timeline View","description":"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","status":"published","published":"2024-04-02T16:40:24.552Z","modified":"2024-08-01T19:11:53.568Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:34:10.258163Z"}],"euvd":[{"id":"EUVD-2024-1157","description":"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","status":"published","published":"2024-04-02T16:40:24Z","modified":"2024-08-01T19:11:53Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"updated_at":"2026-11-03T03:50:40.43027Z"}],"ghsa":[{"id":"GHSA-8f25-w7qj-r7hc","title":"Temporal UI Server cross-site scripting vulnerability","description":"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","status":"published","published":"2024-04-02T18:31:16Z","modified":"2024-04-02T18:53:38Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:37:42.744468Z"}],"nvd":[{"id":"CVE-2024-2435","description":"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","status":"published","published":"2024-04-02T17:15:46.61Z","modified":"2026-06-17T07:24:32Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:09:46.373977Z"}],"osv":[{"id":"CVE-2024-2435","title":"Stored XSS in Timeline View","description":"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","status":"published","published":"2024-04-02T16:40:24.552Z","modified":"2026-10-28T02:31:13.829431188Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:44:38.897406Z"},{"id":"GHSA-8f25-w7qj-r7hc","title":"Temporal UI Server cross-site scripting vulnerability","description":"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","status":"published","published":"2024-04-02T18:31:16Z","modified":"2026-09-10T03:50:12.50645959Z","cvss":[{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:42.077781Z"},{"id":"GO-2024-2675","title":"Temporal UI Server cross-site scripting vulnerability in github.com/temporalio/ui-server","description":"Temporal UI Server cross-site scripting vulnerability in github.com/temporalio/ui-server","status":"published","published":"2024-06-04T15:19:21Z","modified":"2026-02-04T02:56:18.395475Z","updated_at":"2026-11-02T15:47:01.453823Z"}]}}
