Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable, low complexity, PR:L per CVSS 4.0 alignment; no scope change, confidentiality or integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Perspective 5.0.0 contains a denial of service vulnerability that allows remote attackers to block the server event loop indefinitely by submitting a crafted expression containing unbounded for or while loop constructs in a TableMakeViewReq message. Attackers can embed an arbitrarily large iteration count in an expression column evaluated once per table row, causing the Tornado IOLoop to block without any iteration cap, deadline, or cancellation check, rendering the server unresponsive to all connected clients.
AnalysisAI
Denial of service in Perspective 5.0.0 allows low-privileged remote attackers to render the server permanently unresponsive by submitting a crafted TableMakeViewReq message containing expression columns with unbounded for or while loop constructs. Because the Tornado IOLoop evaluates the expression once per table row with no iteration cap, deadline enforcement, or cancellation mechanism, a single malicious request stalls the entire event loop and blocks all connected clients. A publicly available proof-of-concept exploit exists, and the vulnerability is part of a batch of five CVEs disclosed against this version.
Technical ContextAI
Perspective (CPE: cpe:2.3:a:perspective-dev:perspective:*:*:*:*:*:*:*:*) is an open-source, WebAssembly-powered streaming data visualization and analytics library originally developed at J.P. Morgan and now maintained under FINOS. It exposes a server-side component built on Python's Tornado framework, using an IOLoop (single-threaded cooperative event loop) to handle client connections. The TableMakeViewReq message type allows clients to define computed expression columns that are evaluated row-by-row against the underlying table data. CWE-770 (Allocation of Resources Without Limits or Throttling) describes the root cause: the expression evaluator imposes no upper bound on loop iterations, no wall-clock deadline, and no cooperative yielding or cancellation hook, meaning an adversarially crafted loop expression can consume the IOLoop thread indefinitely. Because Tornado's IOLoop is inherently single-threaded and non-preemptive, one blocked coroutine stalls the entire server.
RemediationAI
No vendor-released patch version has been independently confirmed in the available data at time of analysis; users should monitor the VulnCheck advisory at https://www.vulncheck.com/advisories/perspective-dos-via-loop-expression-evaluation and the official perspective-dev repository for a patched release. As an immediate compensating control, restrict access to the Perspective server to trusted, authenticated users only - since PR:L is required, eliminating public or anonymous access removes the unauthenticated attack surface. If the expression evaluation feature is not required for the deployment, disabling computed expression columns via server-side configuration eliminates the vulnerable code path entirely, though this may impact analytical functionality. Network-level controls such as placing the Perspective server behind an authenticated reverse proxy or API gateway with per-client request rate limiting can reduce the frequency of abuse but cannot prevent a single crafted request from blocking the IOLoop once received. Sandboxing expression evaluation in a separate worker process or thread with a hard timeout would address the root cause architecturally but requires code changes.
More in Perspective
View allPerspective ICM Investigation & Case 5.1.1.16 allows remote authenticated users to modify access level permissions and c
Remote unauthenticated file disclosure in perspective-dev/perspective 5.0.0 allows any network attacker to read arbitrar
Unauthenticated remote denial-of-service in Perspective 5.0.0 crashes the server process by exploiting missing field val
Remote code execution in Perspective 5.0.0 exposes any network-reachable PolarsVirtualServer backend to arbitrary OS com
Cross-site scripting in Perspective 5.0.0's built-in Debug plugin enables an authenticated attacker with low privileges
Same technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52695
GHSA-vc2q-3q58-3rrv