npm package report

Is i18next-fs-backend safe?

2 known vulnerabilities, worst severity CRITICAL.

// reach

0 direct dependencies

none carry a known advisory

    1 packages depend on it

    an advisory here reaches each of them

    Create a free accountfor every dependency path, dependent and what to upgrade
    // ai model usage

    Tracked for PyPI packages. HuggingFace models declare Python dependencies, so npm packages are not covered.


    cvss
    9.1
    critical

    CVSS v3.1 base score out of 10

    epss
    0.49%
    medium

    chance of exploitation in 30 days, 42nd percentile of all CVEs

    xyz score
    4.7
    medium

    CyberXYZ composite out of 10

    fig. 01 — GHSA-2933-q333-qg83, the advisory selected below

    // 2 advisories

    GHSA-2933-q333-qg83

    CRITICALGitHub ratingCVE-2026-48713
    // impact

    i18next-fs-backend ≤ 2.6.5, when used to persist missing translation keys (e.g. via i18next-http-middleware's missingKeyHandler exposed to untrusted input), is vulnerable to prototype pollution via crafted missing-key strings.

    Backend.writeFile() splits each queued missing-key string on the configured keySeparator (default .) before calling the internal setPath() walker. The walker (getLastOfPath in lib/utils.js) did not guard against unsafe segments, so a key like "__proto__.polluted" was split into ["__proto__", "polluted"] and walked straight into Object.prototype, allowing an attacker to write arbitrary properties onto the global object prototype.

    Depending on the host application, polluted prototype properties may cause crashes, corrupted translation behaviour, configuration poisoning, or bypasses of property-based security checks.

    // affected configuration

    Applications are directly affected only if all of the following hold:

    • i18next-fs-backend ≤ 2.6.5 is configured as the backend.
    • i18next-http-middleware's missingKeyHandler (or another route that forwards untrusted request bodies to i18next.t(..., { ... }) with saveMissing: true) is reachable by untrusted users.
    • The default behaviour of splitting missing-key strings on keySeparator is in use (i.e. keySeparator is not false).

    Apps that do not expose missing-key persistence to untrusted input are not directly affected through this attack path.

    // patches

    Fixed in i18next-fs-backend 2.6.6. The traversal helper now refuses to descend through __proto__, constructor, or prototype segments and drops the offending write silently. Legitimate dotted keys (e.g. "header.title") are unaffected.

    A matching defence-in-depth fix has been shipped in i18next-http-middleware 3.9.7 — see the companion advisory.

    // workarounds

    If users cannot upgrade immediately:

    • Do not expose i18next-http-middleware's missingKeyHandler to untrusted users (mount it behind authentication, or remove the route).
    • Disable missing-key persistence (saveMissing: false, or no backend.create implementation) when accepting writes from untrusted input.
    • Set keySeparator: false in the i18next options to disable backend key splitting (note: this also disables nested translation keys).
    // resources
    • Original report by @codeswhite.
    • Companion advisory in i18next-http-middleware: GHSA-f49m-vf83-692w.
    • Previous i18next-fs-backend security release: GHSA-8847-338w-5hcj (path traversal via lng/ns, fixed in 2.6.4).
    // cvss v3.1 vector

    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

    Attack vector
    Network
    Attack complexity
    Low
    Privileges required
    None
    User interaction
    None
    Scope
    Unchanged
    Confidentiality
    None
    Integrity
    High
    Availability
    High

    Checked 2026-11-06 at 20:21 UTC. The most recent advisory here was published 2026-06-25. Updated continuously from NVD, GHSA, OSV and CNA feeds.

    Think a verdict here is wrong? Tell us — we respond within 2 business days.