GHSA-Q43X-79JR-CQ98
Vulnerability from github – Published: 2025-07-03 16:59 – Updated: 2025-07-03 18:50A vulnerability was identified in tarteaucitron.js where document.currentScript was accessed without verifying that it referenced an actual <script> element. If an attacker injected an HTML element such as:
<img name="currentScript" src="https://malicious.example.com">
it could clobber the document.currentScript property. This causes the script to resolve incorrectly to an element instead of the tag, leading to unexpected behavior or failure to load the script path correctly.
This issue arises because in some browser environments, named DOM elements (e.g., name="currentScript") become properties on the global document object.
Impact
An attacker with control over the HTML could exploit this to change the CDN domain of tarteaucitron.
Fix https://github.com/AmauriC/tarteaucitron.js/commit/230a3b69d363837acfa895823d841e0608826ba3
The issue was resolved by verifying that document.currentScript is an instance of HTMLScriptElement. If not, the script now falls back safely to the last tag on the page.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "tarteaucitronjs"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1.22.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2025-48939"
],
"database_specific": {
"cwe_ids": [
"CWE-138"
],
"github_reviewed": true,
"github_reviewed_at": "2025-07-03T16:59:09Z",
"nvd_published_at": "2025-07-03T17:15:39Z",
"severity": "MODERATE"
},
"details": "A vulnerability was identified in tarteaucitron.js where document.currentScript was accessed without verifying that it referenced an actual `\u003cscript\u003e` element. If an attacker injected an HTML element such as:\n\n```\n\u003cimg name=\"currentScript\" src=\"https://malicious.example.com\"\u003e\n```\n\nit could clobber the document.currentScript property. This causes the script to resolve incorrectly to an \u003cimg\u003e element instead of the \u003cscript\u003e tag, leading to unexpected behavior or failure to load the script path correctly.\n\nThis issue arises because in some browser environments, named DOM elements (e.g., name=\"currentScript\") become properties on the global document object.\n\n## Impact\nAn attacker with control over the HTML could exploit this to change the CDN domain of tarteaucitron.\n\n## Fix https://github.com/AmauriC/tarteaucitron.js/commit/230a3b69d363837acfa895823d841e0608826ba3\nThe issue was resolved by verifying that document.currentScript is an instance of HTMLScriptElement. If not, the script now falls back safely to the last \u003cscript\u003e tag on the page.",
"id": "GHSA-q43x-79jr-cq98",
"modified": "2025-07-03T18:50:09Z",
"published": "2025-07-03T16:59:09Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/AmauriC/tarteaucitron.js/security/advisories/GHSA-q43x-79jr-cq98"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-48939"
},
{
"type": "WEB",
"url": "https://github.com/AmauriC/tarteaucitron.js/commit/230a3b69d363837acfa895823d841e0608826ba3"
},
{
"type": "PACKAGE",
"url": "https://github.com/AmauriC/tarteaucitron.js"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:H/UI:R/S:C/C:N/I:L/A:L",
"type": "CVSS_V3"
}
],
"summary": "tarteaucitron.js vulnerable to DOM Clobbering via document.currentScript"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.