CVE-2026-67195: Perspective PolarsVirtualServer remote code execution via eval() injection

CVE-2026-67195 · Severity: high · CVSS 8.8 · Published 2026-08-04

Perspective is an interactive analytics and data visualization engine widely used in banking and trading dashboards. A critical flaw in version 5.0.0 allows unauthenticated attackers to execute arbitrary commands on the server by submitting specially crafted expression strings. An attacker can gain full control of the host system running Perspective, compromising all data and operations relying on that server.

Technologies: Perspective. Vendors: Perspective.

Quick answers

Is CVE-2026-67195 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-67195 being exploited in the wild.
How severe is CVE-2026-67195?
High severity, with a CVSS score of 8.8, published 4 August 2026.
Which products and versions are affected?
Perspective <=5.0.0.
Is there a fix for CVE-2026-67195?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-67195 attacked?
It is attacked over the network.
Am I affected by CVE-2026-67195?
Check whether you run Perspective at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability is an unsafe use of Python's eval() function in the PolarsVirtualServer backend (perspective-python). The parse_expression function at line 710 of rust/perspective-python/perspective/virtual_servers/polars.py performs only a regex substitution on user-supplied expression strings before passing them directly to eval() with __builtins__={} as the only sandboxing attempt. This defense is insufficient; attackers bypass it using Python object attribute traversal (e.g., ().__class__.__bases__[0].__subclasses__()) to access subprocess.Popen. The vulnerability is reachable unauthenticated via TableValidateExprReq or TableMakeViewReq protobuf messages over the WebSocket protocol. No user interaction or authentication is required; expression validation alone is sufficient to trigger code execution.

Affected products

  • Perspective Perspective <=5.0.0

Timeline

  • 2026-08-04: disclosed
  • 2026-07-30: other: Live analysis published by researcher Christ Bowel

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.