Executive brief
OpenPanel is an analytics and dashboarding platform that allows users to create dynamic reports using formula expressions. Authenticated project members with read-only access can exploit improper validation of chart formulas to recover a JavaScript constructor and execute arbitrary operating system commands with the privileges of the API process. This bypasses organization security boundaries and allows attackers to access sensitive data, modify systems, and disrupt operations across multiple organizations.
Technical details
The vulnerability is a code injection flaw (CWE-94) in OpenPanel's chart formula evaluation engine. The affected component (packages/db/src/engine/compute.ts) passes user-supplied chart formulas directly to mathjs.parse().compile().evaluate() without AST validation or allowlisting. An authenticated attacker with read-level project access can craft a malicious formula using MatrixIndex and DenseMatrix expressions to recover the native JavaScript Function constructor through mathjs's internal object callbacks. Once obtained, the attacker can load Node.js built-in modules and execute arbitrary OS commands via child_process or similar APIs, all running in the context of the API process. The vulnerability requires authentication and project read access but no additional user interaction; the attacker can access other organizations' data by bypassing authorization checks enforced at the API layer. Version 2.3.0 patches the issue; affected versions include at least 2.2.0 and the supported main branch as of August 2026.
Affected products
- OpenPanel OpenPanel before 2.3.0
Timeline
- 2026-08-20: disclosed
- 2026-09-04: advisory
- 2026-09-04: patched: Version 2.3.0 released