Skip to main content

i18next-http-backend CVE-2026-115730

| EUVDEUVD-2026-108941 LOW
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Influence namespace value in target app
  2. Delivery
    Supply ns beginning with a slash
  3. Exploit
    Template joins into protocol-relative '//' URL
  4. Execution
    Browser fetches attacker-hosted translation JSON
  5. Impact
    Injected content renders as UI/XSS

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
Exploitation Conditions

Three conditions must all hold, per the vendor advisory: (1) the loadPath or addPath template must place {{ns}} directly after a leading '/', e.g. '/{{ns}}/{{lng}}.json'; (2) the attacker must control the namespace (ns) value, which applications usually set in code rather than from user input; and (3) the code must run in a browser, because in Node fetch('//host/...') fails with no base URL to resolve against. For the result to be XSS rather than mere content injection, the application must additionally render translations as HTML. Explicitly NOT affected (confirmed by the maintainer): the default template '/locales/{{lng}}/{{ns}}.json', any template with an origin, any template with a fixed path segment before {{ns}}, and protocol-relative CDN templates like '//cdn.example/{{lng}}/{{ns}}.json'. An ns of '//evil.example' is rejected by the per-value check; only a single leading '/' (allowed for nested namespaces like 'a/b') slips through.

Impact

All signals converge on LOW real-world priority. The supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N) scores only 2.3: network-reachable and unauthenticated, but with an attack requirement (AT:P) and passive user interaction (UI:P), and impact limited to low integrity on the vulnerable system (VI:L) - no confidentiality or availability impact. The vuln.today decision label is 'monitor', consistent with the low score. A working PoC exists and was re-verified reproducing on 2026-10-14, but the input provides no EPSS score and the CVE is not in CISA KEV, so there is no evidence of widespread or active exploitation - PoC availability and active exploitation are distinct, and only the former is present here. The decisive risk limiter is the narrow precondition stack confirmed by the maintainer: the app must use a loadPath/addPath template placing {{ns}} directly after a leading slash, the attacker must control the namespace value (which applications typically set in code, not from user input), only browsers are affected (Node fetch of '//host' fails with no base URL), and XSS additionally requires the app to render translations as HTML. This is a genuine but conditional flaw, not a high-urgency issue. No signals conflict; the main gap is that no EPSS value was supplied.

Exploit ScenarioDerived

An application running i18next-http-backend < 4.0.3 in a browser with a template like '/{{ns}}/{{lng}}.json' derives its namespace from attacker-influenced input; the attacker supplies ns='/evil.example', which joins the template's leading slash into '//evil.example/en.json', a protocol-relative URL the browser resolves to the attacker's origin and fetches as translation JSON. The attacker-hosted translations inject content into the UI, becoming stored XSS wherever the app renders translations as HTML. A minimal PoC is published in the advisory and was re-verified reproducing on 2026-10-14.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Protocol-relative URL injection in i18next-http-backend before 4.0.3 lets an attacker who controls an i18next namespace value redirect translation fetches to an attacker-chosen origin when the loadPath/addPath template places {{ns}} directly after a leading slash. The per-value validation added for the earlier GHSA-xvq9-wjp8-hwqf fix rejects '//evil.example' but still permits a single leading '/', which the template's own '/' turns into '//evil.example/en.json' - a URL browsers resolve off-origin, yielding translation content injection and, where translations are rendered as HTML, cross-site scripting. Exploitation requires the non-default template, attacker-controlled namespace input (applications usually set namespaces in code), and a browser context; Node is not affected, the default '/locales/{{lng}}/{{ns}}.json' template is not affected, and the issue is not known to be exploited in the wild. A minimal proof-of-concept is published in the advisory and was re-verified against 4.0.2, and the release 4.0.3 contains the fix.

RemediationAI

Upgrade i18next-http-backend to 4.0.3, which contains the fix commit 042c3d4e4e9d73b2ae3aa76b22cb45d48f1e35b7 and now validates the fully interpolated URL instead of individual placeholder values; the advisory and changelog for that release document the change. Where upgrading is not immediately possible, the practical mitigations are to avoid any loadPath/addPath template that places {{ns}} directly after a leading '/' (the default '/locales/{{lng}}/{{ns}}.json' and templates with a fixed segment before {{ns}} were never affected, so reverting to them removes the vector), and to ensure namespace and language values are hard-coded or otherwise never derived from user input, since the flaw requires attacker control of ns. If translations are rendered as HTML anywhere in the UI, rendering them as text removes the XSS escalation and leaves only content injection. Note that Node deployments are not exploitable via this path because fetch cannot resolve a protocol-relative URL without a base, so browser-facing deployments are the priority. Remediation references: https://github.com/i18next/i18next-http-backend/security/advisories/GHSA-9jhj-wvmw-cfx5, https://www.vulncheck.com/advisories/i18next-http-backend-4.0.2-protocol-relative-url-injection-via-namespace-in-interpolateurl.

Affected VersionsENISA

i18next-http-backend 4.0.2 <4.0.3

Affected Packages

npm i18next-http-backend fix: 4.0.3

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

i18next-http-backend builds translation request URLs by string-interpolating lng and ns values into user-supplied loadPath/addPath templates (default '/locales/{{lng}}/{{ns}}.json'). Following GHSA-xvq9-wjp8-hwqf, version 4.0.2 added per-value validation: lng may not contain '/', '@' or ':'-style separators, and ns may not contain '//' or '@', with both rejected for '..', backslashes, control characters and reserved delimiters. A single leading '/' is deliberately allowed in ns so nested namespaces such as 'a/b' keep working. The flaw is a CWE-74 injection variant: the check validates the substituted value in isolation and never inspects the assembled URL, so a template like '/{{ns}}/{{lng}}.json' concatenates its own '/' with the value's leading '/' and produces '//evil.example/en.json'. Browsers resolve a leading '//' as a protocol-relative reference, inheriting the page scheme and pointing at a different host, so attacker-hosted translation JSON is loaded; in Node there is no base URL and fetch('//host/...') fails, which limits exposure to browser deployments. The 4.0.3 fix adds a LEADING_DOUBLE_SLASH check on the interpolated result, permitting a leading '//' or '\\' only when the template itself starts that way, which preserves protocol-relative CDN templates such as '//cdn.example/{{lng}}/{{ns}}.json'. The same class of path-root manipulation was fixed in i18next-fs-backend 2.6.9.

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

Vendor (VulnCheck) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.1 LOW

AC:H because it needs a vulnerable template placing {{ns}} after a leading slash plus attacker-controlled ns; UI:R as it loads on page use; PR:N for the attacker; impact limited to content-injection integrity (I:L), no C or A.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

i18next-http-backend 4.0.2 contains an incomplete fix in interpolateUrl() that allows attackers to redirect translation requests by supplying an ns value starting with a slash. Attackers controlling the namespace value can form a protocol-relative URL in loadPath or addPath templates to load attacker-hosted translations, enabling UI content injection and cross-site scripting.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
popular i18next backend npm library, common in browser i18n apps
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy