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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-1336"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55240.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.31.29"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "132ff67907df897d222829ea8ad1a018ff74df48"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v1.31.29",
"range": [
{
"fixed": "b22f41c6896e2845a467c088d414dfcd277951d4"
}
],
"source": "REFERENCES_TAG"
}
]
}