Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted GET to public /rss/{feed_id}
-
ExploitSupply non-built-in ext and {{=expression}} template
-
ExecutionBypass eval denylist via object-subclass traversal
-
ImpactExecute OS commands as service account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Eval input sanitization
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special conditions beyond the product being reachable - remote unauthenticated exploitation against the public GET /rss/{feed_id} endpoint of we-mp-rss through 1.5.3. The attacker must supply a template parameter containing a non-built-in ext value together with a {{=expression}} payload whose object-subclass traversal bypasses the eval denylist to reach OS command execution. Limiting factors: the target must be running we-mp-rss version 1.5.3 or earlier with the /rss endpoint network-accessible to the attacker; no authentication, user interaction, or non-default configuration is required, so the practical barrier is low. Impact is bounded by the privileges of the service account running the application. |
| Impact | This is a genuine high-priority vulnerability, not a high-CVSS-but-low-real-risk case. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes the worst-case profile for exploitability: fully remote, low complexity, no authentication, and no user interaction, with high confidentiality, integrity, and availability impact (VC:H/VI:H/VA:H) - consistent with unauthenticated remote code execution. The affected endpoint (GET /rss/{feed_id}) is explicitly public, which supports the PR:N rating. A detailed public technical writeup exists (hackmd) describing the object-subclass traversal that bypasses the eval denylist, so publicly available exploit details exist, materially lowering the barrier to weaponization. Against these aggravating signals, the mitigating factor is footprint: we-mp-rss is a niche open-source self-hosted WeChat-MP-to-RSS tool, so widespread opportunistic exploitation is less likely than for mainstream software. Key gaps: no EPSS score was provided in the input, and this CVE is NOT on CISA KEV, so there is no evidence of confirmed active exploitation - risk is driven by ease of exploitation and public POC details, not by observed in-the-wild attacks. Anyone running we-mp-rss ≤1.5.3 with a reachable /rss endpoint should treat this as urgent. |
| Exploit ScenarioDerived | An attacker locates an internet-exposed we-mp-rss instance (≤1.5.3) and sends a single crafted GET request to the public /rss/{feed_id} endpoint, supplying a malicious template parameter. Because a public technical writeup (hackmd) documents the exact object-subclass traversal that evades the eval denylist, the attacker can reliably execute OS commands as the service account without any credentials or user interaction. This yields immediate remote code execution and a foothold on the host. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Unauthenticated remote code execution in WeRSS (we-mp-rss) through 1.5.3 allows any attacker who can reach the public GET /rss/{feed_id} endpoint to run arbitrary OS commands as the service account. The flaw is a server-side template injection (CWE-95) in the template parser: by supplying a non-built-in ext value together with a {{=expression}} template, an attacker uses object-subclass traversal to bypass the eval denylist and reach command execution, with no authentication, user interaction, or non-default configuration required. Reported CVSS is 9.3 (CVSS 4.0, AV:N/AC:L/AT:N/PR:N/UI:N) and our independent assessment confirms remote, unauthenticated exploitation with high confidentiality, integrity and availability impact, rating this a genuine high-priority vulnerability rather than a high-CVSS-but-low-real-risk case; no public exploit code was identified at time of analysis, though a public technical writeup of the exploitation chain and a VulnCheck advisory are referenced.
RemediationAI
No vendor-released patch was identified at time of analysis: the available references are advisory and source-code links pointing at the vulnerable v1.5.3 code rather than a fixed release or upstream fix commit, so no patched version number can be cited. Until an official fix is published, the highest-value control is to stop untrusted access to the vulnerable route - place the service behind a reverse proxy or WAF rule that denies or restricts GET /rss/{feed_id} (and any request carrying a template or non-built-in ext parameter) from external networks, at the cost of breaking public feed consumption for those callers. If feeds must stay public, front the endpoint with authentication/allowlisting so only trusted subscribers can invoke it, accepting that generic feed readers may no longer work. Because the root cause is an eval denylist bypass, tightening the denylist in core/lax/template_parser.py is not a reliable fix on its own; if you must patch in place, replace dynamic evaluation of the template expression with a strict parser that rejects __class__, __bases__, __subclasses__, __globals__ and attribute-chaining entirely and only permits a fixed allowlist of built-in extensions, which will disable legitimate custom templates. Additionally, run we-mp-rss under a dedicated unprivileged service account in a container with a read-only filesystem, no host mounts, and restricted outbound egress - this does not prevent the initial template injection but bounds the blast radius of any command execution to that account's privileges. Monitor the VulnCheck advisory (https://www.vulncheck.com/advisories/werss-we-mp-rss-through-1.5.3-rce-via-template-parameter-in-rss-endpoint) and the upstream repository for a fixed release, and treat any unexpected child process spawned by the web service as a compromise indicator.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is an eval-injection / server-side template injection class flaw (CWE-95, 'Improper Neutralization of Directives in Dynamically Evaluated Code') in WeRSS, a Python-based service that generates RSS feeds from WeChat public-account content. The vulnerable code path is the template handling in core/lax/template_parser.py (lines 1150-1166 of the v1.5.3 source tree), reached from the public GET /rss/{feed_id} route implemented in apis/rss.py (lines 185-198). The parser accepts an ext parameter that selects a template extension/parser; when the supplied ext value is not one of the built-in extensions, attacker-controlled template source is compiled and evaluated. The {{=expression}} directive is meant to interpolate a computed value, but because the expression is evaluated rather than sandboxed, an attacker can chain Python object introspection - walking __class__/__bases__/__subclasses__ (object-subclass traversal) - to reach dangerous callables such as os.system, thereby turning template evaluation into OS command execution. The eval denylist the project applies is insufficient: it filters known-bad tokens but not the reflection path that reconstructs those primitives at runtime, which is the direct root cause of the bypass. The CPE cpe:2.3:a:rachelos:we-mp-rss:*:*:*:*:*:*:*:* uses a wildcard version, so the definitive affected bound comes from the vendor/VulnCheck statement of 'through 1.5.3'.
Know when Ssti gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Public unauthenticated endpoint reachable over the network with a single request (AV:N/AC:L/PR:N/UI:N); arbitrary OS command execution as the service account yields full C/I/A impact without scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
WeRSS (we-mp-rss) through 1.5.3 contains a remote code execution vulnerability that allows unauthenticated attackers to run code via the template parameter of the public GET /rss/{feed_id} endpoint. Attackers can supply a non-built-in ext value and a {{=expression}} template whose object-subclass traversal bypasses the eval denylist to run OS commands as the service account.
Executive ViewAI
WeRSS (we-mp-rss) versions through 1.5.3 contain a critical unauthenticated remote code execution vulnerability that allows any attacker who can reach the service to execute arbitrary operating system commands as the service account. This flaw affects all deployments of the affected versions, and because no vendor patch is currently available, organizations are exposed to potential full system compromise, data theft, and service disruption. Leadership should prioritize immediate mitigation efforts, as exploitation requires no authentication and could be launched by any external actor with network access to the service.
Restrict network access to the /rss/{feed_id} endpoint to trusted sources, disable the WeRSS service if not required, deploy WAF rules to block malicious template expressions, and monitor logs for command execution attempts. Consider isolating the service in a segmented network with limited permissions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Rejetto HTTP File Server, up to and including version 2.3m, is vulnerable to a template injection vulnerability. Rated c
Invision Community 5.0.0 through 5.0.6 contains an unauthenticated remote code execution vulnerability in the template e
Remote code execution in the WPML WordPress multilingual plugin (versions up to and including 4.6.12) allows Contributor
Server-side template injection in Adobe Commerce, Adobe Commerce B2B, and Magento Open Source allows remote unauthentica
Server-Side Template Injection in OpenCTI notifier templates allows privileged administrators with 'Manage customization
Unauthenticated remote code execution in Rejetto HFS2 (HTTP File Server) through version 2.4.0 lets an attacker execute
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve
changedetection.io is an open source web page change detection, website watcher, restock monitor and notification servic
A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms all
Remote code execution in WGDashboard 4.3.2 and earlier lets authenticated attackers inject Server-Side Template Injectio
Gibbon through 26.0.00 allows /modules/School%20Admin/messengerSettings.php Server Side Template Injection leading to Re
Server-side template injection in the TYPO3 'Powermail' extension lets an anonymous user submit Fluid template syntax th
EUVD-2026-102978
GHSA-hp95-p2ww-6rvc
NVD
CVE.org
Vulnrichment
Exploit-DB