Remote code execution in Tianji through survey template rendering
Key facts
- Attack vector
- Network
- Privileges required
- High
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-1336.
Summary
Tianji before 1.31.29 is an open source analytics and uptime monitoring platform. Survey and monitor notification templates are rendered by lodash template() with the default evaluate pattern enabled, so a stored evaluate block runs as server-side JavaScript (CWE-1336). A workspace administrator can store such a block, and an unauthenticated user triggers it by submitting a survey response. This allows command execution, secret disclosure, data modification, or service disruption.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Tianji is an open source analytics, uptime monitoring, and server status platform. Prior to 1.31.29, formatString() in src/server/utils/template.ts passes survey feedTemplate and monitor notification templates to lodash template(), while the default evaluate pattern remains enabled. A workspace administrator can store an evaluate block using the <% code %> form, and the public survey.submit endpoint renders a survey template when an unauthenticated user submits a response. The compiled template executes server-side JavaScript in the Tianji Node.js process, allowing command execution, secret disclosure, data modification, or service disruption. This issue is fixed in version 1.31.29.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Tianji to version 1.31.29, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA tianji (msgbyte) Fixed in 1.31.29
Timeline
- 2026-10-16 Threatist record created from CVE-2026-55240
- 2026-10-28 CISA SSVC decision points changed
- 2026-10-28 Priority changed: MEDIUM → HIGH
- 2026-10-29 EPSS moved to the 50th–90th percentile
References
More msgbyte vulnerabilities
- TI-2026-74983 SQL injection in Tianji analytics queries via timezone parameter CVSS 3.1HIGH 8.8
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences