외부에 노출된 Vite 개발 서버가 대규모 자동화 스캔에 표적화된 사례가 확인됐다. 아래에서는 이 취약점의 동작 방식과 관측된 캠페인을 살펴본 뒤, 점검과 대응 순서를 정리한다.
개요

CVE-2026-39364는 Vite(벤더: vitejs) 개발 서버의 server.fs.deny 제어가 쿼리 파라미터에 의해 우회되는 취약점이다. 영향을 받는 버전은 >= 8.0.0, < 8.0.5이며, 공개 보고(CVSS 4.0) 기준 8.2(High)로 평가된다. CVSS 버전 차이에 따라 7.5와 같은 다른 점수도 함께 제시된다. F5 Labs의 보고서에 따르면 공격자는 이 취약점을 활용해 외부에 노출된 개발 서버에서 클라우드 자격증명과 인프라 상태 파일을 탈취했으며, 해당 활동을 'Cloud Takeover'로 표기했다.
공격 흐름
다음은 GitHub 보안 자문이 기술하는 취약점 동작에 근거해 도출한 일반적 악용 가능 절차이며, 관측 캠페인이 실제로 이 순서로 수행했다고 확인된 단계별 흐름이 아니다.
- 취약 호스트 식별:
server.fs.deny우회가 가능한 외부에 노출된 Vite 개발 서버를 스캔해 취약 호스트를 찾는다. - 제한 파일 요청:
.env,*.crt등 차단 대상 파일에?raw,?import&raw,?import&url&inline같은 쿼리 파라미터를 붙여 HTTP 요청을 보낸다. - HTTP 200을 통한 파일 읽기: 쿼리 파라미터가 첨부되면
server.fs.deny에 의해 차단되어야 할 파일이 HTTP 200 응답으로 반환될 수 있다.
관측 캠페인에 대해 확인된 사실은 다음 두 가지로 한정된다. 활동이 CVE-2026-39364에 매칭되는 프로브를 기반으로했다는 점, 그리고 외부에 노출된 Vite 개발 서버에서 클라우드 자격증명과 인프라 상태 파일이 수집됐다는 점이다. F5 Labs는 월간 분석 기간 동안 세션 단위로 묶인 공격 807건과 약 32,000건의 원 이벤트를 식별했다.
영향 범위
- 취약 버전: Vite >= 8.0.0, < 8.0.5 (CVE 기록 기준)
- 실제 표적 조건: 외부 네트워크에 직접 노출된 Vite 개발 서버
- 유출 가능한 자료:
.env(클라우드 자격증명, API 키 등),*.crt인증서 파일, 기타server.fs.deny설정 제한 파일 - 운영적 영향: 자격증명 탈취로 인한 클라우드 계정·인프라 장악(Cloud Takeover) 위험
해당 캠페인의 행위자(threat actor)와 대상이 된 구체적 클라우드 제공자는 현재 증거에 특정되지 않았다. 807건과 약 32,000건은 F5 Labs의 월간 분석 기간 기준이며, 전체 캠페인 규모가 아니다.
기술적 분석
Vite 개발 서버는 server.fs.deny 옵션으로 .env, *.crt 등 민감 파일 접근을 차단하도록 설계되어 있다. CVE-2026-39364에서는 이 제어가 요청의 쿼리 파라미터를 통해 우회된다. GitHub 보안 자문에 따르면, server.fs.deny에 의해 차단되어야 할 파일(.env, *.crt 등)은 ?raw, ?import&raw, ?import&url&inline 같은 쿼리 파라미터가 첨부되면 HTTP 200 응답으로 반환될 수 있다. 즉 차단 대상 파일이 쿼리 파라미터를 통해 정상적으로 읽히는 것이 이 취약점의 핵심 동작이다.
제공된 증거에서 확인되는 활동 범위는 2026년 8월 관측된 캠페인이며, 해당 활동은 CVE-2026-39364를 대상으로 한 프로브로 주도된 것으로 보고된다.
한계점: Vite 벤더가 이 취약점을 수정한 구체적 릴리스와 수정 내용은 제공된 증거에 포함되지 않으며, 업그레이드 대상 버전을 확인하려면 벤더 공식 릴리스 노트를 확인해야 한다. CISA KEV 카탈로그 등재 여부도 확인되지 않아, 공식 패치 기한을 기준으로 한 우선순위 판단은 제한적이다.
대응·복구
제공된 증거에서 직접 확인되는 사항은 이 취약점이 쿼리 파라미터 첨부를 통해 제한 파일의 HTTP 200 반환을 허용한다는 점, 그리고 관측 캠페인이 외부에 노출된 Vite 개발 서버를 표적으로 삼았다는 두 가지다. 이에 근거한 검토 범위는 다음과 같다.
- 외부 노출 여부 확인: 관측 캠페인의 표적 조건이 외부 노출이었으므로, 자체 네트워크에서 외부에 직접 도달 가능한 Vite 개발 서버가 있는지 점검한다.
- 영향 버전 확인: CVE 기록의 영향 범위(>= 8.0.0, < 8.0.5)에 해당하는 Vite 설치분을 확인한다.
- 노출 파일 확인:
server.fs.deny대상인.env,*.crt등 제한 파일이 해당 서버에 존재하는지 확인한다.
이 세 가지를 모두 만족하는 서버는 관측 캠페인의 표적 조건에 해당할 수 있으며, 해당 서버에 저장된 자격증명·키가 노출되었을 가능성을 전제로 대응 우선순위를 판단할 수 있다. 구체적인 격리·순환·로그 감사·모니터링 절차는 제공된 증거에 명시되지 않아 이 글에서는 단정하지 않는다.
재발 방지
- 영향 범위 설치 여부 확인: CVE 기록이 확인하는 영향 범위(>= 8.0.0, < 8.0.5)에 해당하는 Vite 설치분이 네트워크에 존재하는지 확인한다. 수정 릴리스나 안전한 업그레이드 대상 버전에 대한 정보는 제공된 증거에 명시되지 않아 이 글에서는 제시하지 않는다.
- 외부 노출 축소: 관측된 캠페인은 외부에 노출된 Vite 개발 서버를 표적으로 삼았다. 개발 서버의 외부 노출을 줄이면 해당 관측 캠페인의 표적 조건을 줄일 수 있다.
상기한 대응은 제공된 증거가 확인하는 사실(영향 범위, 외부 노출 표적 조건, 쿼리 파라미터 우회로 인한 HTTP 200 반환)에 근거한다. 그 외 구체적인 설정·감사·모니터링 수치는 증거에 특정되지 않아 언급하지 않는다.
참고자료
- CVE-2026-39364 (CVELIST V5 record)
- Cloud Takeover: Mass Scanning for Exposed Vite Endpoints (CVE-2026-39364)
- Mass-Scanning Campaign Exploits Vite Flaw to Extract Cloud Credentials From Exposed Dev Servers
함께 읽으면 좋은 글
- CVE-2026-64849: MLflow SSRF 취약점 KEV 등재와 AI·ML 플랫폼 점검
- CVE-2026-8037: Progress LoadMaster 무인증 명령어 주입 RCE, KEV 등재와 실제 악용 시도가 확인됐다
- CVE-2026-72898: Metabase 인가 없는 SQL 인젝션, CISA KEV 등재와 자체 호스팅 인스턴스 점검
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!