Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious link to admin toggle/delete route
-
DeliveryLure logged-in administrator to click it
-
ExploitBrowser sends authenticated GET with session cookie
-
ExecutionUnprotected toggle/position (or token-replayed delete) action runs
-
ImpactCatalogue/config objects deleted, hidden or reordered
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a currently authenticated Thelia back-office administrator who performs active interaction - clicking a crafted link or visiting a hostile page in the same browser - because the PHPSESSID cookie is sent on top-level GET navigation under SameSite=Lax. For the delete routes, the attacker must additionally have obtained the single per-session CSRF token, which the application leaks by carrying it in the URL query string (?_token=) where it is captured by server/proxy access logs, browser history, HTTP Referer headers, or any XSS on the admin domain. The setToggleVisibilityAction and updatePositionAction actions inherited from AbstractCrudController required no token at all, so toggling visibility/activation and reordering are exploitable as pure CSRF without any token leak. Limiting factors: no exploitation is possible without an active admin session (the routes 302-redirect anonymous requests to /admin/login) and without victim interaction; affects Thelia before 3.2.0 and the listed companion template/module packages. |
| Impact | This is a genuine but moderate-priority issue, not a drop-everything emergency. The signals are internally consistent: the supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:L) yields 5.9 (medium), and the vuln.today decision label is 'this_month' rather than act_now or emergency. There is no CISA KEV listing and no EPSS score in the input, so there is no evidence of active or widespread exploitation - exploitation status is 'no public exploit identified at time of analysis' in the packaged sense, though a detailed step-by-step PoC is published in the vendor GHSA advisory (see exploit_scenario). The practical risk is bounded by the attack preconditions: the victim must be a currently logged-in back-office administrator who performs user interaction (UI:A), and for the delete routes the attacker must separately obtain the per-session CSRF token that leaks via the URL (access logs, browser history, Referer, or XSS). Crucially, the advisory and patch show the setToggleVisibilityAction and updatePositionAction inherited from AbstractCrudController accepted no token at all, so those two are exploitable as pure CSRF with no token leak required. Impact is integrity/availability (unauthorized delete, hide, reorder of catalogue and configuration objects, plus storefront breakage from deleting defaults), with no confidentiality impact. Net: a real, fixable flaw worth patching on a normal cycle; the authenticated-admin-plus-interaction requirement and the niche deployment footprint keep it out of mass-exploitation territory. |
| Exploit ScenarioDerived | An attacker hosts a page or email containing a crafted link (or auto-loading GET) to a Thelia back-office action and lures a logged-in administrator to click it; the PHPSESSID cookie rides the top-level GET navigation (SameSite=Lax), and the unprotected toggle/position actions execute with no token - while delete actions execute if the attacker has also obtained the URL-leaked per-session token. A detailed working PoC (including login-wall and token controls) is published in the vendor GHSA advisory, so defenders should treat the technique as public. Attack vector is network with low complexity but requires active admin interaction (UI:A). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 31, 2026
Cross-site request forgery in Thelia's back office lets a crafted link or hostile page make a logged-in administrator delete, hide or reorder catalogue and configuration objects without any error or audit entry. All Thelia releases before 3.2.0 are affected: the single per-session CSRF token is rendered into URL query strings (so it leaks through access logs, browser history, HTTP Referer headers or any XSS on the admin domain), and the setToggleVisibilityAction and updatePositionAction routes inherited from AbstractCrudController performed state changes without any token check, making toggles and reordering exploitable as pure CSRF with no token theft at all. The attacker needs no privileges (CVSS PR:N) but exploitation requires a currently authenticated back-office administrator to actively click the link, since anonymous requests are redirected to /admin/login; a public proof-of-concept reference exists in the vendor advisory, it is not verified as working exploit code, and there is no indication of active exploitation at time of analysis.
RemediationAI
Vendor-released patch: upgrade Thelia core to 3.2.0 (https://github.com/thelia/thelia/releases/tag/3.2.0, commit 55a7156e552d0b8145309b10175d13ecc1187433) and the default-twig back-office template to 1.2.0 (commit a9647682572de056ba258a2d4d53e42f5b591b84), as documented in advisory GHSA-cfvv-2jvw-x2hp. The patch adds token enforcement (403 on a missing or invalid token) to deleteAction(), setToggleVisibilityAction(), updatePositionAction() and genericUpdatePositionAction(), and reads the token from the _token body field, then the X-CSRF-Token header, then the deprecated query string; any custom module whose back-office list toggles or reorders rows through those actions without sending _token must be updated to send it or it will start receiving 403s. The two packages listed without a fixed release, thelia/backoffice-default-template up to 2.6.2 and thelia/smarty-module up to 3.0.2, have no vendor-released patch identified at time of analysis; for those, the associated templates and Smarty plugins must be changed to render state-changing actions as POST forms carrying a hidden _token field (or send the X-CSRF-Token header) instead of {token_url} links. On 3.2.0, setting the thelia.token.accept_query_string parameter to false refuses URL-borne tokens entirely, which removes the leak path; the trade-off is that any back-office page or third-party module still sending _token in the query string will break with a rejected token until it is converted to body/header submission, which is why the parameter remains true by default in this release. Note that these actions remain reachable by a single top-level GET navigation while the administrator holds a session, so completing the upgrade across core and every installed template/module package is the only complete fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 5 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-352 (cross-site request forgery) compounded by CWE-598 (sensitive information in query string). Thelia's back-office protection is built on Thelia\Tools\TokenProvider, which holds a single md5(random_bytes(32)) value per session, shared across every action, and the {token_url} Smarty plugin appends it to action URLs as ?_token=. Because that one secret guards everything, a single leak compromises every mutation. Compounding this, the back-office routing in templates/backOffice/default/Config/Resources/routing/admin.xml declares methods="post" for only one delete route (admin.address.delete); the remaining delete routes and all toggle routes declare no method, so HTTP GET drives them, and controllers such as AbstractCrudController::deleteAction(), LangController::deleteAction(), ModuleController::deleteAction() and CouponController::deleteAction() read the token with $request->query->get('_token') rather than from the request body. The AbstractCrudController toggle/position actions had no token validation whatsoever before the fix. The 3.2.0 change introduces TokenProvider::checkRequestToken(), which reads the token from the _token body field first, then the X-CSRF-Token header, then (deprecated) the query string, compares in constant time, and a denyWithoutValidToken() guard returning HTTP 403 that now fronts deleteAction(), setToggleVisibilityAction(), updatePositionAction() and genericUpdatePositionAction(). A new parameter, thelia.token.accept_query_string, defaults to true in 3.2.0 and is intended to flip to false in a later release. The attack surface spans the CPE-identified packages cpe:2.3:a:thelia:thelia, thelia_core, thelia_back-office_default_twig_template, thelia_back-office_default_template and thelia_smarty_module, and the PHPSESSID cookie is transmitted on top-level GET navigation under SameSite=Lax, which is what makes the one-click link delivery work.
Know when Thelia 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:P/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
CSRF needs an authenticated admin to click (UI:R) but the unprotected toggle/position actions need no token (AC:L, PR:N); impact is unauthorized state change (I:H) plus storefront breakage (A:L), no disclosure.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Thelia before 3.2.0 contains a cross-site request forgery vulnerability in the back office that allows attackers to forge administrative actions because per-session CSRF tokens leak via URL query strings. Attackers can reuse leaked tokens or target the unprotected setToggleVisibilityAction and updatePositionAction to make logged-in administrators delete, hide or reorder catalogue and configuration objects.
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
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Authenticated back-office users of Thelia through 2.6.1 can chain a path traversal flaw in the translation editor with a
Server-side template injection in the back-office Email/Messages feature of Thelia 3.0.0 lets an authenticated user hold
Remote code execution in the Thelia e-commerce platform (all versions before 3.1.2 and 3.2.x before 3.2.1) allows an aut
Stored cross-site scripting in Thelia before 3.1.0 lets anyone who self-registers a front-office customer account plant
Remote code execution in Thelia v2.6.0 is achievable by an authenticated administrator who abuses the document update en
Authenticated attackers holding a Thelia administrator account can achieve remote code execution on the underlying serve
Thelia Page Module through 2.0.3 exposes back-office delete routes for page tags, documents and images without CSRF toke
The Thelia back-office Twig template bundle (thelia/backoffice-default-twig-template) before 1.1.1 exposes two admin cat
An open redirect in Thelia's address-creation workflow (versions up to and including 2.6.0) lets an attacker craft a URL
Reflected cross-site scripting in Thelia versions up to 2.6.0 allows remote attackers to execute arbitrary JavaScript in
Authenticated administrators of Thelia 2.6.0 and earlier can achieve remote code execution by injecting malicious Smarty
Authenticated template injection in Thelia versions up to and including 2.6.1 lets a logged-in user with access to Smart
EUVD-2026-114727
GHSA-2qjc-j63h-9f97
NVD
CVE.org
EPSS
VulDB
Exploit-DB