---
id: CVE-2026-55240
title: >-
  Tianji is an open source analytics, uptime monitoring, and server status
  platform
summary: >-
  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…
severity: critical
cvss: 9.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H'
cwe:
  - CWE-1336
vendor: msgbyte
product: tianji
affected:
  - tianji < 1.31.29
published: '2026-10-15'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T19:17:40.290'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-55240'
references:
  - url: >-
      https://github.com/msgbyte/tianji/commit/132ff67907df897d222829ea8ad1a018ff74df48
    label: security-advisories@github.com
  - url: 'https://github.com/msgbyte/tianji/releases/tag/v1.31.29'
    label: security-advisories@github.com
  - url: 'https://github.com/msgbyte/tianji/security/advisories/GHSA-5grg-j3cr-3hpm'
    label: security-advisories@github.com
tags:
  - nvd
  - cve.org
ingestedAt: '2026-10-15T19:25:46.434Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
