🔍 CVE-2026-41885

6.5
CVSS Score
MEDIUM
2026-05-08
2026-06-17 10:47
✅ 완료

🇰🇷 한글 설명

i18next-locize-backend가 설정된 URL 템플릿에 lng, ns, projectId, version을 직접 삽입하면서 경로 검증 및 인코딩을 수행하지 않습니다. 사용자 입력이 이들 값으로 노출될 경우 공격자가 URL 구조를 변조할 수 있습니다.

💡 쉬운 설명

이 라이브러리가 웹주소를 만들 때 사용자 입력값을 검사 없이 그대로 사용합니다. 악의적인 사용자가 웹주소를 조작하여 원하는 서버로 요청을 보낼 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

i18next-locize-backend < 9.0.2

⚔️ 공격 벡터

?lng=, ?ns= 쿼리 파라미터, 쿠키, 요청 헤더, URL 기반 projectId를 통해 사용자 입력으로 URL 경로 변조

🛡️ 대응 방법

i18next-locize-backend를 9.0.2 이상으로 업그레이드

🔧 검증 코드

설치된 버전이 9.0.2 이상인지 확인하고, 그 이하면 npm update i18next-locize-backend를 실행하여 업그레이드

Shell / Script
npm list i18next-locize-backend 2>/dev/null | grep -E '@[0-9]'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js