Skip to main content

i18next-http-backend EUVDEUVD-2026-93433

| CVE-2026-105800 LOW
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-10-06 GitHub_M GHSA-xvq9-wjp8-hwqf
3.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Find app with placeholder-leading loadPath template
  2. Delivery
    Submit crafted lng/ns value (e.g. http:127.0.0.1:8080)
  3. Exploit
    Placeholder interpolation forms absolute/protocol-relative URL
  4. Execution
    Backend request leaves intended origin
  5. Impact
    Reach internal service or attacker origin (SSRF)

Vulnerability Assessment

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

Exploitation requires that the application configure a custom loadPath or addPath template that begins DIRECTLY with the {{lng}} or {{ns}} placeholder (e.g. '{{lng}}/{{ns}}.json'), with no leading '/' path and no origin prefix - only then does the placeholder occupy the URL's structural beginning. The attacker must also control the language or namespace value passed to i18next (e.g. via user-selectable locale), and inject a colon to form an absolute URL, or in browser contexts a leading double-slash in the namespace to form a protocol-relative URL. LIMITING FACTORS: the default '/locales/{{lng}}/{{ns}}.json' template and ANY template with a leading path segment or origin are NOT exploitable, because a colon inside a path segment has no structural meaning - this makes the vulnerable configuration uncommon and is why CVSS attack complexity is High. Versions 4.0.2 and later reject these values outright.

Impact

All signals point to a low-priority issue despite the network attack vector. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N, base 3.7) correctly reflects that exploitation requires no authentication but carries HIGH attack complexity and yields only LOW confidentiality impact with no integrity or availability effect. The AC:H rating is well-justified by the vulnerability's dependency on a specific, non-default configuration: the application must use a custom loadPath/addPath template that begins directly with the {{lng}} or {{ns}} placeholder. No EPSS score was provided in the input, so exploitation probability cannot be quantified. There is no CISA KEV listing and no public exploit code was identified - the only source-code artifact is the vendor's remediation commit, not a proof-of-concept. The signals are internally consistent rather than conflicting: a genuinely low-impact (information-disclosure-grade) SSRF/URL-injection flaw gated behind an uncommon configuration. This is a legitimate defense-in-depth fix to apply during normal patch cycles, not an emergency.

Exploit ScenarioDerived

A Node.js or browser application configures i18next-http-backend with a custom loadPath such as '{{lng}}/{{ns}}.json' (no leading slash or origin) and derives the language or namespace from user-controllable input. An attacker supplies a value like 'http:127.0.0.1:8080', which is interpolated into what becomes an absolute URL, causing the backend to issue a request to an attacker-chosen origin (SSRF) rather than the intended server. No public exploit code was identified at time of analysis; the only available code artifact is the vendor fix commit.

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

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

Alert me

AnalysisAIv1 – Oct 06, 2026

URL injection and server-side request forgery (SSRF) in i18next-http-backend prior to 4.0.2 allows attacker-controlled language or namespace values to redirect translation resource requests away from the intended origin, but only when the application configures a custom loadPath or addPath template that begins directly with the {{lng}} or {{ns}} placeholder. Because the placeholder must occupy the URL's structural beginning for a colon to form an absolute URL (or, in browsers, a double-slash namespace to form a protocol-relative URL), the default '/locales/{{lng}}/{{ns}}.json' template and any template with a leading path or origin prefix are unaffected; this uncommon configuration and the need to control the language/namespace input drive the High attack complexity rating. Impact is limited to low confidentiality loss (blind SSRF/URL injection with no integrity or availability effect), and all signals indicate a low-priority issue - no public exploit code and no confirmed active exploitation were identified at time of analysis. The issue is fixed in version 4.0.2.

RemediationAI

Primary fix: upgrade i18next-http-backend to version 4.0.2 or later (vendor-released patch: 4.0.2), available from the npm registry and tagged at https://github.com/i18next/i18next-http-backend/releases/tag/v4.0.2 with the advisory at https://github.com/i18next/i18next-http-backend/security/advisories/GHSA-xvq9-wjp8-hwqf; the underlying change is commit 07e028862b25d0b9251bf3cafb92be2d35285f85, which rejects ':' in lng and ns values and '//' in ns values. If immediate upgrade is not possible, apply compensating controls: (1) rewrite any custom loadPath/addPath so the placeholder is never at the structural start of the URL - prefix it with a leading '/' path segment or an absolute origin (e.g. change '{{lng}}/{{ns}}.json' to '/locales/{{lng}}/{{ns}}.json' or 'https://cdn.example.com/locales/{{lng}}/{{ns}}.json'); this fully removes the injection primitive with no functional loss, since the resulting fetch URL is the same for legitimate values; (2) validate language and namespace inputs on the server/application side before they reach i18next, allow-listing BCP-47 language tags and known namespace names and rejecting any value containing ':', '//', '..', '\\', '?', '#', '%', or whitespace - trade-off is that applications relying on dynamic or user-generated namespaces must maintain an explicit allow-list; (3) on Node.js servers, restrict outbound egress from the i18next process (deny requests to link-local/loopback/internal RFC1918 ranges and unexpected ports) - trade-off is that legitimate requests to internal translation servers or proxies must be explicitly permitted, and the SSRF remains viable if egress filtering is incomplete. Note that no public exploit code and no confirmed active exploitation were identified at time of analysis, so remediation can be scheduled as routine low-priority maintenance.

Affected VersionsENISA

i18next-http-backend < 4.0.2

Affected Packages

npm i18next-http-backend fix: 4.0.2

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 is the HTTP loading backend for the i18next internationalization framework, used in Node.js, browsers, and Deno to fetch translation JSON from a server. Request URLs are built by interpolating {{lng}} and {{ns}} placeholders into a loadPath or addPath template via a small regex-driven substitution routine that performs per-placeholder safety validation (rejecting '..', backslashes, control characters, and previously [?

% \s]). The root cause is CWE-74 (improper neutralization of special elements in output used by a downstream component) - specifically a URL-construction/injection flaw where the sanitizer did not account for the fact that when the placeholder sits at the structural start of the URL, a ':' becomes a scheme delimiter and a leading '//' becomes a protocol-relative authority. With a template like '{{lng}}/{{ns}}.json', an input such as 'http:127.0.0.1:8080' is interpolated into an absolute URL, causing the fetch (Node fetch/undici, XHR, or browser fetch) to leave the intended origin and issue a request to an attacker-chosen or internal destination. The fix in 4.0.2 extends the character blocklist to reject ':' in lng and ns values and additionally rejects '//' in ns values; the changelog notes there is no legitimate collateral because no BCP-47 language tag contains ':' and ':' is i18next's default nsSeparator, so no usable namespace name does either. CPE data (cpe:2.3:a:i18next:i18next-http-backend:*:*:*:*:*:*:*:*) identifies the i18next HTTP backend package across all versions before the fix as the affected component, independent of the consuming application.

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 (GitHub_M) PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 3.7 LOW

AC:H because exploitation depends on a non-default placeholder-leading loadPath/addPath template; PR:N/UI:N as attacker-supplied lng/ns needs no auth; only limited confidentiality impact via SSRF, no integrity/availability effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 06, 2026 - 16:03 EUVD

DescriptionCVE.org

i18next-http-backend is a backend layer for i18next that loads translation resources in Node.js, browsers, and Deno. Prior to 4.0.2, attacker-controlled language or namespace values interpolated into a custom loadPath or addPath that begins directly with {{lng}} or {{ns}} can make colon-based input become an absolute URL or, in browsers, make a double-slash namespace become a protocol-relative URL. The resulting request can leave the intended origin and cause URL injection or server-side request forgery. The default /locales/{{lng}}/{{ns}}.json template and templates with a leading path or origin are not affected because the placeholder does not occupy the URL's structural beginning. This issue is fixed in version 4.0.2.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 13 npm packages depend on i18next-http-backend (3 direct, 10 indirect)

Ecosystem-wide dependent count for version 4.0.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular i18next HTTP backend plugin, but only non-default template configs affected
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.3%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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