Skip to main content

Ssti CVE-2026-35477

| EUVDEUVD-2026-20588 CRITICAL
Improper Neutralization of Special Elements Used in a Template Engine (CWE-1336)
2026-04-08 security-advisories@github.com
9.9
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

7
Re-analysis Queued
Jul 24, 2026 - 21:22 vuln.today
cvss_changed
Severity Changed
Jul 24, 2026 - 21:22 NVD
MEDIUM CRITICAL
CVSS changed
Jul 24, 2026 - 21:22 NVD
5.5 (MEDIUM) 9.9 (CRITICAL)
Patch available
Apr 16, 2026 - 05:29 EUVD
1.2.7
EUVD ID Assigned
Apr 08, 2026 - 20:23 euvd
EUVD-2026-20588
Analysis Generated
Apr 08, 2026 - 20:23 vuln.today
CVE Published
Apr 08, 2026 - 20:16 nvd
MEDIUM 5.5

DescriptionNVD

InvenTree is an Open Source Inventory Management System. From 1.2.3 to 1.2.6, the fix for CVE-2026-27629 upgraded the PART_NAME_FORMAT validator to use jinja2.sandbox.SandboxedEnvironment. However, the actual renderer in part/helpers.py was not updated and still uses the non-sandboxed jinja2.Environment. Additionally, the validator uses a dummy Part instance with pk=None, which allows conditional template expressions to behave differently during validation versus production rendering. A staff user with settings access can craft a template that passes validation but executes arbitrary code during rendering. This issue requires access by a user with granted staff permissions. This vulnerability is fixed in 1.2.7 and 1.3.0.

AnalysisAI

Remote code execution in InvenTree 1.2.3 through 1.2.6 allows staff users with settings access to execute arbitrary code by crafting malicious Jinja2 templates that bypass sandbox validation. The vulnerability exists because the PART_NAME_FORMAT validator uses a sandboxed Jinja2 environment, but the actual rendering engine in part/helpers.py uses an unsandboxed environment, combined with a validation bypass via dummy Part instances with pk=None that behave differently during validation versus production execution. No public exploit code or active exploitation confirmed at time of analysis.

Technical ContextAI

InvenTree uses Jinja2 templating for part naming formats. The vulnerability stems from an incomplete remediation of CVE-2026-27629: while the validator was upgraded to jinja2.sandbox.SandboxedEnvironment to prevent template injection, the production renderer in part/helpers.py retained the unrestricted jinja2.Environment. Additionally, the validator creates a dummy Part object with pk=None to test templates, but this allows conditional expressions (such as {% if part.pk %}) to execute different code paths during validation versus real rendering where pk contains an actual value. Attackers with staff permissions and settings modification rights can craft templates that pass the sandboxed validator but execute arbitrary Python code when the unsandboxed renderer processes them. This is a classic Server-Side Template Injection (SSTI) attack enabled by inconsistent sandboxing.

RemediationAI

Upgrade InvenTree to version 1.2.7 or 1.3.0 or later. The patch synchronizes the PART_NAME_FORMAT renderer in part/helpers.py to use the same jinja2.sandbox.SandboxedEnvironment as the validator, and corrects the validation bypass by ensuring template rendering behavior is consistent between validation and production. Organizations unable to upgrade immediately should restrict staff-level access and settings modification permissions to only trusted administrators, and audit recent changes to part naming format templates for suspicious template syntax. For detailed remediation guidance, consult the GitHub Security Advisory at https://github.com/inventree/InvenTree/security/advisories/GHSA-84jh-x777-8pqq.

More in Ssti

View all
CVE-2025-47916 CRITICAL POC
10.0 May 16

Invision Community 5.0.0 through 5.0.6 contains an unauthenticated remote code execution vulnerability in the template e

CVE-2024-6386 CRITICAL POC
9.9 Aug 21

Remote code execution in the WPML WordPress multilingual plugin (versions up to and including 4.6.12) allows Contributor

CVE-2024-23692 CRITICAL POC
9.8 May 31

Rejetto HTTP File Server, up to and including version 2.3m, is vulnerable to a template injection vulnerability. Rated c

CVE-2025-23211 CRITICAL POC
9.9 Jan 28

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve

CVE-2024-32651 CRITICAL POC
10.0 Apr 26

changedetection.io is an open source web page change detection, website watcher, restock monitor and notification servic

CVE-2024-4040 CRITICAL POC
10.0 Apr 22

A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms all

CVE-2024-24724 CRITICAL POC
9.8 Apr 03

Gibbon through 26.0.00 allows /modules/School%20Admin/messengerSettings.php Server Side Template Injection leading to Re

CVE-2026-28496 CRITICAL POC
9.4 Jun 23

Server-side template injection in FOSSBilling versions prior to 0.8.0 allows authenticated administrators to execute arb

CVE-2025-1040 HIGH POC
8.8 Mar 20

AutoGPT versions 0.3.4 and earlier are vulnerable to a Server-Side Template Injection (SSTI) that could lead to Remote C

CVE-2023-6709 HIGH POC
8.8 Dec 12

Improper Neutralization of Special Elements Used in a Template Engine in GitHub repository mlflow/mlflow prior to 2.9.2.

CVE-2022-0896 HIGH POC
8.8 Mar 09

Improper Neutralization of Special Elements Used in a Template Engine in GitHub repository microweber/microweber prior t

CVE-2024-54954 HIGH POC
8.0 Feb 10

OneBlog v2.3.6 was discovered to contain a template injection vulnerability via the template management department. Rate

Share

CVE-2026-35477 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy