Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify app with query-shaped loadPath/addPath template
-
DeliveryCraft lng/ns value containing & and = separators
-
ExploitDeliver via ?lng=, cookie, or Accept-Language header
-
ExecutionBackend interpolates raw value into outgoing translations request
-
PersistInjected parameters override ns/tenant/flags (HTTP parameter pollution)
-
ImpactExpose other namespaces or tenants' resources
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
|
| Exploitation Conditions | Two preconditions must both hold: (1) the loadPath or addPath template must place {{lng}} or {{ns}} in the URL query string (e.g. the README multiload shape /locales/resources.json?lng={{lng}}&ns={{ns}}), and (2) the attacker must control the language or namespace value - which in normal setups comes from ?lng=, a cookie, localStorage, or the Accept-Language header (and i18next-http-middleware's LanguageDetector on the server). Explicitly NOT exploitable: the default path template /locales/{{lng}}/{{ns}}.json and any other path-only template (the earlier 3.0.5 fix already blocks ? in the path position), and applications that restrict languages via a supportedLngs allowlist. The injected '+' multiload form (de+en) continues to work normally. Realistic impact is further limited by how the target translations API branches on the injected/overridden parameters. |
| Impact | All signals converge on low real-world priority. The supplied CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) scores 3.7 (Low): network-reachable and unauthenticated (PR:N), but AC:H and limited confidentiality-only impact (C:L, I:N, A:N). The AC:H is well-grounded in the evidence - exploitation requires a non-default query-shaped loadPath/addPath template, so the raw CVSS understates how conditional this is. The vuln.today Decision label is 'monitor' (not act_now/emergency), consistent with the low score. There is NO CISA KEV listing (not actively exploited) and NO EPSS score was provided in the input, so probability-of-exploitation cannot be quantified here. A detailed public proof-of-concept is published in the GHSA advisory with full reproduction steps and captured output, so working exploitation is demonstrable - but PoC availability is a distinct signal from active exploitation and should not be read as the latter. Net: this is a genuine but low-severity, configuration-dependent issue (an incomplete fix for CVE-2026-41691), appropriately triaged as 'monitor/patch on normal cadence' rather than an emergency. Missing data to note: EPSS absent; no KEV; impact magnitude depends on downstream translations-API behavior, which the sources cannot enumerate. |
| Exploit ScenarioDerived | On a server-side (SSR/Node) app using i18next-http-middleware with a README-style multiload template like /locales/resources.json?lng={{lng}}&ns={{ns}}, an unauthenticated visitor requests GET /?lng=de%26ns%3Dprivate%26admin%3Dtrue. Because & and = were not rejected, the application server then sends …?lng=de&ns=private&admin=true&ns=common to its own internal/partner translations API using the server's network position and credentials, potentially exposing other namespaces or tenants or altering backend behavior. A public PoC in the GHSA advisory demonstrates this end-to-end; the browser-side variant achieves the same via a crafted ?lng= link against the victim's same-origin request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Query-parameter injection in i18next-http-backend before 4.0.4 lets attacker-controlled language or namespace values add or override parameters on outgoing translation requests whenever a loadPath or addPath template places {{lng}} or {{ns}} in the query string, such as the multiload shape /locales/resources.json?lng={{lng}}&ns={{ns}}. Server-side deployments using i18next-http-middleware's LanguageDetector are the most exposed case: an unauthenticated visitor supplying ?lng=de%26ns%3Dprivate%26admin%3Dtrue can make the application issue a request to its own translations API as ...?lng=de&ns=private&admin=true&ns=common, leveraging the server's network position and credentials; on the browser side the same crafted link affects the victim's same-origin request. Severity is bounded (CVSS 3.1 3.7, AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) because exploitation requires both a query-shaped template and attacker control of the language or namespace value, and real impact depends on how the translations API branches on the injected parameters; the default /locales/{{lng}}/{{ns}}.json template and supportedLngs-restricted applications are unaffected, the advisory publishes a proof-of-concept script, and no confirmed active exploitation is reported in the available sources (priority label: monitor).
RemediationAI
Vendor-released patch: upgrade i18next-http-backend to 4.0.4 (release tag v4.0.4, commit b0eef9efd425055c554787cef7f878de33bbf510), which rejects '&', '=' and ';' in both lng and ns values in addition to the previously blocked '?', '#', '%' and ':', as described in advisory GHSA-3cmx-xjww-583x (https://github.com/i18next/i18next-http-backend/security/advisories/GHSA-3cmx-xjww-583x). The fix preserves the '+' multiload form, so users of de+en style multi-language requests can upgrade without losing functionality. If upgrading cannot be done immediately, the advisory states that keeping the template path-only - the default /locales/{{lng}}/{{ns}}.json or any other template that does not place {{lng}} or {{ns}} in the query string - is not affected, and that restricting languages with a supportedLngs allowlist also removes the vector, though the trade-off is that query-shaped multiload templates or unrestricted language detection must be given up until the patch is applied. Applications using the related i18next-locize-backend with custom query-shaped templates should move to 10.0.4, which the advisory lists as fixed for that package.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is CWE-74 (improper neutralization of special elements in output used by a downstream component), specifically HTTP parameter pollution in the URL built by interpolateUrl() in lib/utils.js. The 3.0.5 sanitizer rejects empty or over-128-character values, prototype keys, '..', backslash, control characters and /[?#%:\s]/, and isSafeLangUrlSegment adds only '/' and '@' - neither rejects '&', '=' or ';'. interpolateUrl splits the value on '+', validates each segment, and joins the raw segments into the template without any encoding, so when the placeholder sits after '?' in the template those characters are structural query separators rather than path characters. The vulnerable call sites are _readAny, which builds the load URL from loadPath with lng and ns, and create, which builds the missing-key URL from addPath. This is an incomplete fix for CVE-2026-41691 (GHSA-q89c-q3h5-w34g), which closed only the '?' path-position form. The values are attacker-reachable in normal setups because language detection reads ?lng=, cookies, localStorage and request headers, and i18next-http-middleware's LanguageDetector does the same server-side; the advisory's PoC confirms the injected ns=private&admin=true parameters reach the fake translations API with the server's own request, while the '?' variant is refused by the existing check. The 4.0.4 commit b0eef9efd425055c554787cef7f878de33bbf510 widens the check to /[?#%:&=;\s]/, and '+' joined multiload values such as de+en continue to work.
Know when I18Next 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
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Non-default query-shaped template required (AC:H); attacker-controlled language value needs no auth (PR:N); impact is limited disclosure of other namespaces/tenants, with no confirmed integrity or availability loss.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
i18next-http-backend is a backend layer for i18next that loads translation resources in Node.js, browsers, and Deno. Prior to 4.0.4, interpolateUrl inserts unencoded language and namespace values into loadPath or addPath templates without rejecting ampersand (&), equals (=), or semicolon (;) query separators. When a template places lng or ns in the query string and an attacker controls that value, the attacker can add or override parameters on browser or server-side translation requests, potentially exposing other namespaces or tenants or changing backend behavior through the application's network position and credentials. This vulnerability is the result of an incomplete fix for CVE-2026-41691. This issue is fixed in version 4.0.4.
Blast Radius
ecosystem impact- 3 npm packages depend on i18next-http-backend (1 direct, 2 indirect)
Ecosystem-wide dependent count for version 4.0.4.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote prototype pollution in i18next-http-middleware before 3.9.7 allows unauthenticated attackers to write to Object.p
Prototype pollution in i18next-fs-backend versions prior to 2.6.6 allows remote attackers to write arbitrary properties
Path traversal and URL-structure injection in i18next-http-backend before 3.0.5 let remote unauthenticated attackers who
Object.prototype pollution in i18next-http-middleware prior to 3.9.3 allows remote unauthenticated attackers to inject a
Path traversal in i18next-fs-backend allows remote unauthenticated attackers to read arbitrary files (including /etc/pas
DOM-based cross-site scripting (XSS) in i18nextify versions prior to 4.0.8 allows remote attackers to execute arbitrary
URL injection and server-side request forgery (SSRF) in i18next-http-backend prior to 4.0.2 allows attacker-controlled l
Protocol-relative URL injection in i18next-http-backend before 4.0.3 lets an attacker who controls an i18next namespace
EUVD-2026-112360
GHSA-3cmx-xjww-583x
NVD
CVE.org
Exploit-DB