{"answers":{"affected":"2 open source packages ship an affected version, including i18next-locize-backend.","exploited":"There is no known exploitation of CVE-2026-41885 in the wild and no public exploit code.","fix":"Upgrade i18next-locize-backend to 9.0.2 or later.","what":"CVE-2026-41885 is a medium-severity path traversal vulnerability in i18next-locize-backend, published on 8 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-41885 and fix it if it is affected.\n\nWhat it is: CVE-2026-41885 is a medium-severity path traversal vulnerability in i18next-locize-backend, published on 8 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-41885 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- i18next-locize-backend (npm): affected all versions; fixed in 9.0.2\n- i18next-locize-backend (npm): affected all versions; fixed in 9.0.2\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-41885/ (Markdown: https://insights.sbomify.com/CVE-2026-41885/index.md)","id":"CVE-2026-41885","markdown":"https://insights.sbomify.com/CVE-2026-41885/index.md","name":"CVE-2026-41885","record":{"aliases":["GHSA-mgcp-mfp8-3q45"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["data_read","data_modify"],"network_reachable":"yes","non_default_config":false,"product_category":"i18next backend library","requires_auth":"none","summary":"Attackers can manipulate URL paths in i18next-locize-backend to access or modify unintended resources via unsanitized input parameters.","user_interaction":"not_required","vuln_class":"path_traversal"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":6.5,"severity":"medium","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","version":"3.1"},"cwes":[{"id":"CWE-74","name":"Improper Neutralization of Special Elements in Output Used by a Downstream Component"},{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory"}],"description":"i18next-locize-backend is a simple i18next backend for locize.com which can be used in Node.js, in the browser and for Deno. Prior to version 9.0.2, i18next-locize-backend interpolates lng, ns, projectId, and version directly into the configured loadPath / privatePath / addPath / updatePath / getLanguagesPath URL templates with no path-component validation and no encoding. When an application exposes any of these values to user-controlled input (?lng= / ?ns= query parameters via i18next-browser-languagedetector, cookies, request headers, or a URL-derived projectId), a crafted value can change the structure of the outgoing request URL. Affected call sites in lib/index.js (pre-patch): the interpolate() helper is used at the five URL-build sites — _readAny/read (line 415 for private, 426 for public), getLanguages (lines 271 and 296), and writePage (lines 616 and 622) for the missing-key and update POST paths. The helper interpolate in lib/utils.js substitutes raw values with no encoding. This issue has been patched in version 9.0.2.","ecosystems":["npm"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Path traversal / URL injection via unsanitised lng/ns/projectId/version in i18next-locize-backend","id":"CVE-2026-41885","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"npm","product":null,"products":[],"type":"path_traversal","year":"2026"},"n_packages":2,"n_references":1,"next":{"headline":"locize Client SDK: Cross-origin DOM XSS \u0026 Handler Hijack Through Missing e.origin Validation in InContext Editor","id":"CVE-2026-41886"},"packages":[{"ecosystem":"npm","fixed":["9.0.2"],"introduced":["0"],"last_affected":[],"package":"i18next-locize-backend","purl":null,"source":"GHSA-mgcp-mfp8-3q45"},{"ecosystem":"npm","fixed":["9.0.2"],"introduced":["0"],"last_affected":[],"package":"i18next-locize-backend","purl":"pkg:npm/i18next-locize-backend","source":"GHSA-mgcp-mfp8-3q45"}],"prev":{"headline":"OmniFaces: EL injection via crafted resource name in wildcard CDN mapping","id":"CVE-2026-41883"},"products":["i18next-locize-backend"],"published":"2026-05-08","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-05-08","vendors":["locize"]},"summary":"Attackers can manipulate URL paths in i18next-locize-backend to access or modify unintended resources via unsanitized input parameters.","url":"https://insights.sbomify.com/CVE-2026-41885/"}