Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain CMS content-author privileges
-
DeliveryInject element with data-url javascript: URL beside benign url
-
ExploitgetElemAttr reads data- attribute, bypassing https guard
-
ExecutionPayload placed into iframe src
-
ImpactExecute arbitrary script in site origin
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to place markup processed by tarteaucitron.js, specifically an element bearing a 'data-url' or 'data-src' attribute whose value is a javascript: URL supplied alongside a legitimate-looking unprefixed 'url' attribute; getElemAttr resolves the data-prefixed attribute into an iframe src while the https-only regex guard validates the wrong (unprefixed) attribute, so the javascript: scheme is never rejected. Concrete prerequisites: (1) the site runs tarteaucitron.js before version 1.37.0; (2) the attacker holds content-authoring/markup-injection capability such as a CMS author or contributor role (not anonymous - PR:L); and (3) a victim must load the affected page (UI:P). These authoring-privilege and user-interaction requirements meaningfully limit real-world exploitation to multi-author or user-generated-content environments. |
| Impact | This is a stored/DOM cross-site scripting flaw (CWE-79) rated Medium (CVSS 5.1, vendor 4.0 vector AV:N/AC:L/PR:L/UI:P). The signals are internally consistent and point to a moderate, not critical, priority. Attack vector is network (AV:N) with low complexity (AC:L), but exploitation is gated by two real limiting factors: PR:L means the attacker must already hold a privileged content-authoring role (the description names CMS authors), and UI:P means a victim must load the affected page. Impact is only partial (VC:L/VI:L, no availability), reflecting script execution in the site origin rather than full system compromise. No EPSS score was provided, the CVE is NOT on CISA KEV, and no public exploit code was identified - so there is no evidence of active or widespread exploitation. The primary risk is to multi-author CMS deployments where a low-trust contributor can abuse a confused-deputy validation gap. Because the trigger requires attacker-controlled markup, this behaves more like a privilege-boundary/stored-XSS issue than an anonymous remote RCE; treat it as a routine-to-prompt patch rather than an emergency. Note: the source vector is CVSS 4.0 only; no CVSS 3.1 vector or EPSS was supplied, so cross-framework comparison relies on the single provided 4.0 vector. |
| Exploit ScenarioDerived | A malicious or compromised CMS author adds a tarteaucitron service element carrying a benign 'url' attribute alongside a 'data-url' (or 'data-src') set to a javascript: URL. Because getElemAttr resolves the data-prefixed attribute while the https-only guard validates the unprefixed one, the javascript: payload bypasses the check and is placed into an iframe src, executing in the site's origin when any visitor loads the page. No public exploit code was identified, though the patch commit publicly reveals the single-line validation mismatch that makes the flaw trivial to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
A stored/DOM cross-site scripting flaw in tarteaucitron.js (CWE-79) affects all releases before 1.37.0 and allows an attacker who can place markup on a page - for example a CMS author or contributor - to inject a 'data-url' or 'data-src' attribute holding a javascript: URL next to a benign-looking 'url' attribute. Because getElemAttr resolves the 'data-' prefixed attribute into an iframe src while the https-only regex guard validates the unprefixed attribute, the javascript: scheme is never rejected and the injected script executes in the site's origin. The vendor rates this Medium (CVSS 5.1, 4.0 vector), our independent assessment scores it CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, and there is no public exploit identified at time of analysis; the authoring-privilege (PR:L) and victim-interaction (UI:P/UI:R) prerequisites limit realistic abuse to multi-author or user-generated-content environments.
RemediationAI
Upgrade tarteaucitron.js to vendor-released patch version 1.37.0 (https://github.com/AmauriC/tarteaucitron.js/releases/tag/v1.37.0), which contains upstream fix commit 068653bd47f5d4a493251ca8e15bd2b0be9b544f that makes the https-only guard validate the resolved attribute value; verify the deployed build actually changed, since sites pulling tarteaucitron.min.js from a CDN or a cached self-hosted copy often keep serving the old <1.37.0 bundle, and a diff of https://github.com/AmauriC/tarteaucitron.js/compare/v1.36.0...v1.37.0 can confirm what changed. Where immediate upgrading is not possible, reduce the attack surface by stripping or disallowing 'data-url' and 'data-src' attributes from CMS-author and user-submitted markup (trade-off: legitimate administrator-authored service markup using the data- prefixed form must be re-authored with a plain 'url' attribute and https scheme), by tightening authoring roles so only trusted roles can insert raw HTML (trade-off: reduces editorial flexibility but directly removes the PR:L prerequisite), and by deploying a Content-Security-Policy with a restrictive frame-src/script-src allowlist covering only genuine consent-managed third-party origins (trade-off: an overly strict frame-src will break legitimate embedded services until the allowlist is tuned, and CSP is only a defence-in-depth layer here rather than a complete fix because the payload executes from the site's own origin). Note that the flaw requires markup-placement privilege plus victim interaction, so prioritise multi-author and user-generated-content deployments; no public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, allowing patch deployment to follow normal change-management cycles.
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
tarteaucitron.js is a widely deployed French-language cookie-consent / RGPD banner library (vendor AmauriC, distributed on GitHub, npm and CDNs such as jsDelivr) that scans the DOM for service elements, reads their attributes, and lazily creates third-party iframes or scripts after consent. The vulnerable helper getElemAttr() resolves attributes, preferring a 'data-' prefixed variant when present (e.g. 'data-url' over 'url'), and the surrounding https-only validator in tarteaucitron.js (v1.36.0, lines ~2641-2648) was written as if ((attr = 'url' || attr = 'data-url' || attr === 'data-src') && !/^https?:\/\/[^\s]+$/.test(elem.getAttribute(attr))). The flaw is a validation/consumption mismatch: the regex re-reads elem.getAttribute(attr) using the attribute name that was requested rather than the value actually returned by getElemAttr(), so when both 'url' and 'data-url' exist the guard tests the safe https URL while the iframe src is populated from the attacker-controlled 'data-url' containing a javascript: scheme - the class exercise of CWE-79 (improper neutralization of input during web page generation) manifesting as DOM-based XSS. The upstream fix in commit 068653bd47f5d4a493251ca8e15bd2b0be9b544f simply changes the test target from elem.getAttribute(attr) to the resolved 'attribute' variable, so the guard now validates the exact value that will be used. The CPE cpe:2.3:a:amauric:tarteaucitron.js:*:*:*:*:*:*:*:* confirms that every release prior to the 1.37.0 tag is in scope.
Know when Tarteaucitron Js 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:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Requires an authenticated content-author (PR:L) and a victim page load (UI:R); injected script escapes the library into the visitor's browser context (S:C) with limited confidentiality/integrity and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
tarteaucitron.js before 1.37.0 contains a cross-site scripting vulnerability because getElemAttr resolves 'data-' prefixed attributes while the https-only guard validates the unprefixed attribute. Attackers who can place markup, such as CMS authors, can add data-url with a javascript: URL beside a benign url to execute script in the site's origin via iframe src.
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 Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-103005
GHSA-rfp9-xrhw-w637
NVD
CVE.org
EPSS
Exploit-DB