🇰🇷 한글 설명
i18next-http-backend 4.0.2 미만 버전에서 언어(lng) 또는 네임스페이스(ns) 값이 커스텀 로드 경로의 시작 부분에 위치할 경우 URL 주입 또는 SSRF 취약점이 발생할 수 있습니다. 공격자가 제어하는 값이 콜론(:)을 포함하면 절대 URL로 변환되거나, 브라우저에서 프로토콜 상대 경로로 해석되어 의도치 않은 외부 요청을 유발할 수 있습니다.
💡 쉬운 설명
번역 파일을 불러오는 경로 설정에 공격자가 조작한 값이 들어가면, 원래 가려던 곳이 아닌 엉뚱한 외부 사이트로 접속을 시도하게 만들 수 있는 문제입니다. 이를 통해 서버 내부 정보를 빼내거나 잘못된 요청을 보낼 위험이 있습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
i18next-http-backend version < 4.0.2
⚔️ 공격 벡터
공격자가 제어하는 언어 또는 네임스페이스 값을 커스텀 loadPath/addPath의 시작 부분에 삽입하여 URL 구조를 조작함
🛡️ 대응 방법
i18next-http-backend 라이브러리를 4.0.2 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 4.0.2 미만인지 확인하십시오.
npm list i18next-http-backend | grep i18next-http-backend