🇰🇷 한글 설명
Node.js용 HTTP 요청 로거 미들웨어인 morgan의 1.12.0 미만 버전에서 유니코드 줄 바꿈 문자를 제대로 처리하지 못하는 취약점이 발견되었습니다. 공격자가 특정 유니코드 문자를 포함한 요청을 보내면 로그 데이터가 여러 개의 레코드로 분리되어 로그 조작(Log Forging)이 가능해집니다. 이는 이전 취약점(CVE-2026-5078)의 불완전한 수정으로 인해 발생한 CWE-117 취약점입니다.
💡 쉬운 설명
로그를 기록할 때 특수 문자를 제대로 걸러내지 못해, 공격자가 가짜 로그를 만들어 시스템 기록을 속일 수 있는 문제입니다. 마치 일기장에 몰래 줄을 바꿔 써서 마치 다른 사람이 쓴 것처럼 꾸미는 것과 같습니다.
🇺🇸 원문 (English)
morgan is an HTTP request logger middleware for Node.js. In versions prior to 1.12.0, the internal helper that escapes log token values did not neutralize the Unicode line separator characters U+0085 (Next Line), U+2028 (Line Separator), and U+2029 (Paragraph Separator). An unauthenticated remote client can place these characters in an attacker-controlled log token, for example a Basic auth username surfaced through the remote-user token, so that Unicode-aware downstream log processing splits a single request log into multiple logical records. This is a log forging issue (CWE-117) and an incomplete-fix follow-up to CVE-2026-5078, which only addressed ASCII control characters. The issue is fixed in morgan 1.12.0, which extends the escaping set to cover these Unicode line separators. Upgrade to morgan 1.12.0 to remediate.
📍 영향받는 시스템
morgan versions prior to 1.12.0
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 로그 토큰(예: Basic auth username)에 유니코드 줄 바꿈 문자(U+0085, U+2028, U+2029)를 삽입하여 공격
🛡️ 대응 방법
morgan 버전을 1.12.0 이상으로 업그레이드
🔧 검증 코드
출력된 morgan의 버전이 1.12.0 미만인지 확인
npm list morgan | grep morgan