CVE 데이터베이스CVE-2026-117518
English Advisory →
CVE-2026-1175188.2/HIGHCWE-22

@fastify/reply-from 경로 탐색 및 프록시 우회 취약점 (CVE-2026-117518)

⚡ 패치 명령어 바로가기
영향받는 벤더 / 생태계
fastify
대상 컴포넌트 / 패키지
@fastify/reply-from
권고문 발행일
2026-11-02
CVSS v3.1
8.2
HIGH
30일 악용확률
0.5%
FIRST.org
CISA KEV
미등재

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

@fastify/reply-from 12.8.0 이하 버전을 사용하는 Node.js 애플리케이션

파급 효과

인증되지 않은 공격자가 백슬래시(\) 및 퍼센트 인코딩된 백슬래시(%5C)를 사용하여 경로 검증을 우회하고, 의도하지 않은 업스트림 내부 API 및 리소스에 접근하여 민감한 정보를 탈취할 수 있습니다

권장 조치

취약점이 해결된 @fastify/reply-from 12.8.1 이상 버전으로 즉시 업그레이드를 수행하십시오

영향받는 제품 및 버전 범위

@fastify/reply-from 12.8.0 및 그 이하의 모든 버전

권장 패치 및 임시 완화(Workaround) 가이드

패치 및 우회 명령어

1. 공식 보안 패치 및 버전 업그레이드 명령어

본 취약점에 대한 유일한 해결책은 취약점이 수정된 최신 버전으로 패키지를 업그레이드하는 것입니다. 아래 명령어를 사용하여 @fastify/reply-from을 12.8.1 이상 버전으로 업데이트하십시오.

bash
# npm을 사용하는 경우
npm install @fastify/reply-from@12.8.1

# yarn을 사용하는 경우
yarn add @fastify/reply-from@12.8.1

# pnpm을 사용하는 경우
pnpm add @fastify/reply-from@12.8.1

2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정

공식 보안 권고에 따르면 업그레이드 외에 별도의 임시 완화책(Workaround)은 존재하지 않습니다. 패치 적용 전까지 임시로 유입되는 요청 경로에 백슬래시 및 인코딩된 백슬래시가 포함되어 있는지 검사하는 전역 미들웨어를 Fastify에 추가하여 차단할 수 있습니다.

javascript
// Fastify 애플리케이션에 임시 요청 필터링 미들웨어 적용
fastify.addHook('onRequest', async (request, reply) => {
  const decodedUrl = decodeURIComponent(request.raw.url);
  if (decodedUrl.includes('\\') || decodedUrl.includes('..')) {
    reply.code(400).send({ error: 'Bad Request', message: 'Suspicious path traversal pattern detected.' });
  }
});

3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트

현재 프로젝트 내에 취약한 버전이 설치되어 있는지 확인하고, 애플리케이션 액세스 로그에서 백슬래시(\) 또는 %5C를 포함한 비정상적인 경로 탐색 시도가 있었는지 점검하십시오.

bash
# 1. 프로젝트 내 취약한 버전 설치 여부 확인
npm list @fastify/reply-from

# 2. 애플리케이션 액세스 로그에서 백슬래시(%5C 또는 \)를 포함한 경로 탐색 공격 시도 검색
grep -Ei '(%5C|\\|\.\.)' /var/log/nginx/access.log /var/log/apps/fastify-access.log
실무자 패치 대응 자가 점검 체크리스트
0/4 (0%)
권장 아키텍처 방어 통제 (Recommended Security Control)
Snyk Open Source & Container Security
@fastify/reply-from 라이브러리를 즉시 12.8.1 이상 버전으로 업그레이드하여 경로 탐색 및 프록시 우회 위협을 차단하십시오.

내 GitHub/GitLab 레포지토리에 이 취약한 패키지가 숨어 있는지 30초 만에 스캔하세요

간접 의존성(Transitive Dependency)에 포함된 취약점은 수동 확인이 불가능합니다. Git 연동 한 번으로 취약 버전 탐지부터 호환성을 유지하는 최소 버전 업그레이드 PR까지 자동 생성하세요.

무료 플랜 지원 · GitHub/GitLab 1클릭 연동
CI/CD 파이프라인에 자동 보안 스캐닝(SAST/SCA) 구축하는 실전 강의
커리큘럼 확인하기

취약점 발생 원리 및 공격 메커니즘

1. 취약점 개요 및 발생 원인 (Root Cause)

본 취약점(CVE-2026-117518)은 Fastify 웹 프레임워크의 HTTP 요청 포워딩 플러그인인 @fastify/reply-from에서 발생하는 경로 탐색(Path Traversal, CWE-22) 및 프록시 우회 취약점입니다.

기존 12.8.0 이하 버전에서는 프록시 경로를 검증할 때 슬래시 기반의 도트 세그먼트(예: /../)만을 검사하여 필터링을 수행했습니다. 그러나 이후 대상 URL을 빌드하는 과정에서 WHATWG URL 파서(Parser)를 사용하는데, 이 파서는 http, https, ws, wss 스키마에서 백슬래시(\) 및 퍼센트 인코딩된 백슬래시(%5C)를 슬래시(/)로 정규화(Normalization)하여 처리합니다. 이로 인해 검증 단계에서는 필터링을 우회하고, 최종 URL 해석 단계에서 상위 경로로 이동하는 불일치(Parser Differential) 현상이 발생합니다.

2. 공격 메커니즘 및 익스플로잇 시나리오

공격자는 프록시 경로 검증 로직을 우회하기 위해 슬래시 대신 백슬래시를 포함한 도트 세그먼트 패턴(예: ..\..\ 또는 ..%5C..%5C)을 요청 경로에 주입합니다.

  • 요청 수신: 공격자가 https://example.com/api/v1/proxy/..%5C..%5Cadmin과 같은 경로로 요청을 전송합니다.
  • 검증 우회: @fastify/reply-from은 슬래시(/) 기준의 도트 세그먼트만 검사하므로, 백슬래시가 포함된 해당 경로를 안전한 것으로 판단하고 통과시킵니다.
  • URL 정규화 및 해석: WHATWG URL 파서가 타겟 업스트림 URL을 생성하는 과정에서 ..%5C를 ../로 변환합니다.
  • 업스트림 요청 전송: 결과적으로 프록시는 의도된 접두사(Prefix) 경로를 벗어나 업스트림 서버의 내부 관리자 엔드포인트(/admin)로 요청을 전달하게 됩니다.

3. 비즈니스 및 인프라 파급 영향

이 취약점은 주로 기밀성(Confidentiality)에 높은 영향을 미치며, 무결성(Integrity)에도 일부 영향을 미칠 수 있습니다.

  • 내부 API 노출: 외부 인터넷에 노출되지 않아야 할 내부 마이크로서비스(Upstream Services) 및 관리 API가 인증 없이 외부에 노출될 수 있습니다.
  • 보안 통제 무력화: 프록시 호출 전단계에 배치된 라우트 가드(Route Guards)나 인증/인가 미들웨어가 특정 경로 패턴을 기준으로 작동하는 경우, 공격자가 이 검증을 우회하여 내부 자원에 접근할 수 있습니다.

공식 보안 권고문 및 참조 링크

NIST NVD 공식 영문 원문 (Original Record)

@fastify/reply-from is a Fastify plugin that forwards requests to an upstream HTTP server. In versions up to and including 12.8.0, the plugin validated proxy paths against forward-slash dot-segments only and then built the target with the WHATWG URL parser, which normalizes a backslash and its percent-encoded form to a forward slash on the http, https, ws, and wss schemes. A path that uses backslash dot-segments therefore bypasses the traversal check and resolves to a different upstream path, so an application that scopes proxying to an upstream prefix, or relies on route guards in front of the forwarding call, can have an unauthenticated request escape the intended prefix and reach other upstream endpoints. The resulting access to unintended upstream resources is primarily a confidentiality impact with limited integrity impact. The issue is fixed in @fastify/reply-from 12.8.1, where the path is normalized and any segment resolving to a single or double dot, along with control characters and ambiguous whitespace, is rejected before the URL is constructed, and users should upgrade to 12.8.1 or later. There is no workaround other than upgrading.

자주 묻는 실무 질문 (FAQ — CVE-2026-117518)

FAQ

Q1. CVE-2026-117518 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?

CVE-2026-117518의 기본 점수는 CVSS 8.2 (HIGH)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 0.5%입니다. 외부 네트워크 노출 여부에 따라 선제적인 패치 및 접근 제어가 권장됩니다.

Q2. CVE-2026-117518에 영향을 받는 벤더와 제품은 무엇입니까?

주요 영향 벤더는 fastify이며, 대상 컴포넌트는 @fastify/reply-from입니다. 상세 영향 범위: @fastify/reply-from 12.8.0 및 그 이하의 모든 버전

Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?

[권장 조치] 취약점이 해결된 @fastify/reply-from 12.8.1 이상 버전으로 즉시 업그레이드를 수행하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.

실무자 보고서 워크벤치 연동

CVE-2026-117518 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성

클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.

보고서 초안 생성하기 →

🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (fastify)

동일 카테고리 전체 보기 →
SecOps Advisory Dispatch & RSS Feed

일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독

보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.

Slack / Teams / RSS 리더 연동:
패치 명령EN
CVE-2026-117518 @fastify/reply-from 경로 탐색 및 프록시 우회 취약점 (CVE-2026-117518) (CVSS 8.2) - 패치 및 보안 권고 | CVE Pulse