SK쉴더스 로고
ADT캡스캡스홈
SK쉴더스

BlueMoon을 통한 Chrome·Windows 취약점 3종 연쇄 악용

EQST Now | 2026.09.14

NOW Briefing

Brief 1 Chrome·Windows 취약점 3종을 연쇄 악용하는 BlueMoon 익스플로잇 킷이 8월 28일부터 표적 피싱 공격에 사용됐습니다.
Brief 2 수정 사항이 Chromium 소스에만 반영된 기간에는 악성 링크를 여는 것만으로 V8 샌드박스 이탈이 가능했습니다.
Brief 3 Chrome 153.0.8010.36 이상과 2026년 9월 Windows 보안 업데이트를 적용하고, 미적용 단말의 의심 링크 접속 이력을 점검해야 합니다.

BlueMoon을 통한 Chrome·Windows 취약점 3종 연쇄 악용

■ 개요

Volexity와 Proofpoint는 2026년 9월 9일 Chrome과 Windows 취약점 3종을 하나로 엮은 익스플로잇 킷 분석을 각각 공개했습니다. Proofpoint가 BlueMoon이라고 이름 붙인 이 킷은 특정 대상을 겨냥한 표적 피싱(스피어피싱) 링크에서 시작해, Chrome의 자바스크립트·WebAssembly 실행 엔진(V8) 취약점 두 개와 Windows 권한 상승 취약점 하나를 차례로 사용합니다. Proofpoint는 8월 28일부터 9월 3일 사이 첩보 목적 위협 행위자 네 곳의 첫 사용을 관측했으며, 이 가운데 세 곳을 중국 연계로 평가했습니다.

CVE-2026-85046의 수정 커밋은 공개된 Chromium 소스에 먼저 반영됐지만, 이 수정이 담긴 Chrome 정식 릴리스는 한동안 나오지 않았습니다. Volexity는 이 상태를 "Chromium 소스 수준에서는 N-day였지만 Google Chrome 사용자에게는 사실상 제로데이였다"고 설명합니다. 자동 업데이트를 받던 이용자도 이 기간에는 보호받지 못했습니다. 공격에는 악성 링크를 여는 것 외에 로그인이나 추가 조작이 필요하지 않았습니다. 다만 권한 상승 단계는 저권한 세션과 특정 Windows 빌드에서만 이어졌습니다.

세 취약점은 모두 CISA의 실제 악용이 확인된 취약점 목록(KEV)에 등재됐으며, 미 연방 민간 행정부 기관(FCEB)의 조치 기한은 CVE-2026-85046이 9월 18일, CVE-2026-85880이 9월 22일, CVE-2026-87491이 9월 23일입니다. CISA는 KEV 항목에서 Microsoft Edge, Opera처럼 Chromium을 사용하는 다른 브라우저도 영향을 받을 수 있다고 밝혔습니다. CVE-2026-87491은 서울대학교 Compsec Lab 연구자가 구글에 보고했고, 구글은 Chrome 153 릴리스 공지에서 실제 환경의 익스플로잇 존재를 확인했습니다.

■ 요약

항목 내용
캠페인·기법명 BlueMoon 익스플로잇 킷 — Chrome·Windows 취약점 3종 연쇄
위협 수준 • CVE-2026-85046: CVSS v3.1 8.8
• CVE-2026-87491: CVSS v3.1 8.8
• CVE-2026-85880: CVSS v3.1 7.8
• 3종 모두 CISA KEV 등재됨
공격 방식 • 표적 피싱 링크로 익스플로잇 페이지 유도
• V8 타입 혼동으로 V8 샌드박스 내 임의 읽기·쓰기 확보
• WebAssembly 함수 본문 덮어쓰기로 V8 샌드박스 이탈
• Windows ALPC 힙 버퍼 오버플로우로 권한 상승 후 페이로드 실행
영향/위험 • 악성 링크를 여는 것만으로 V8 샌드박스를 벗어난 렌더러 코드 실행 가능
• 권한 상승 성공 시 Chrome 브로커 프로세스에 코드 주입됨
• 후속 단계에서 백도어·자격증명 탈취 확장 프로그램 설치 관측됨
표적 산업·지역 • 미국 비정부기구(NGO)·광업·원자재 거래
• 미국 항공우주·방위산업
• 베트남 제조업
• 인도네시아·싱가포르 정부·컨설팅·금융
관측 기간 • 클러스터별 최초 관측: 2026-08-28 ~ 2026-09-03 (Proofpoint 기준 4개 클러스터)
• Chrome 수정 반영: 2026-09-03(152.0.7977.82), 2026-09-08(153.0.8010.36)
• Windows 수정 반영: 2026년 9월 보안 업데이트

■ 취약점 3종을 엮는 방식

공격은 피싱 메일의 링크에서 시작합니다. Proofpoint가 관측한 TA412 사례에서는 이용자에게 로딩 화면이 보이는 동안 CVE-2026-85046이 V8 내부의 메모리 격리 계층(V8 샌드박스) 안에서 임의 읽기·쓰기 수단을 확보합니다. 이어 CVE-2026-87491이 WebAssembly 함수 본문을 셸코드로 덮어써 V8 샌드박스를 벗어나고, 렌더러 프로세스 안에서 공격자 코드가 실행됩니다.

권한 상승 전에는 디스크에 파일을 남기지 않고 메모리에서 모듈을 올리는 방식(reflective DLL 로딩)으로 OS 버전과 프로세스 토큰, 가상화 여부를 먼저 확인합니다. 저권한 세션이고 대상 Windows 빌드일 때만 CVE-2026-85880으로 권한을 올립니다. 이어 샌드박스 밖에서 권한 있는 작업을 대행하는 Chrome 상위 프로세스(브로커 프로세스)에 프로세스 생성 코드를 주입해 페이로드를 내려받습니다. 최종 페이로드는 그룹마다 달랐고, 백도어 GRIMWEDGE·ShadowPad와 자격증명 탈취 기능을 넣은 Chrome 확장 프로그램이 관측됐습니다.

공격자 로더 react.min.js에는 난독화되지 않은 설정 변수 선언부가 남아 있습니다. 킷은 익스플로잇 주소를 하드코딩하지 않고, 여기 담긴 기본 주소(CONFIG_URL)에 페이로드 경로를 실행 시점에 덧붙여 최종 주소를 만듭니다. 이 때문에 기본 주소만으로는 최종 페이로드 URL을 특정하기 어렵습니다. 아래 코드는 Volexity 리포트가 공개한 react.min.js 설정 변수 선언부입니다. 리포트는 실제 접속을 막기 위해 주소를 변형된 형태로 공개했습니다.

var CONFIG_URL = 'hxxps://cloud.shinewrist[.]net/<removed>/page.html?mode=payload';
vmT_f6baf0['CONFIG_URL'] = CONFIG_URL;
globalThis['CONFIG_URL'] = vmT_f6baf0['CONFIG_URL'];
var CONFIG_DAILY_LIMIT = ![];
vmT_f6baf0['CONFIG_DAILY_LIMIT'] = CONFIG_DAILY_LIMIT;
globalThis['CONFIG_DAILY_LIMIT'] = vmT_f6baf0['CONFIG_DAILY_LIMIT'];

■ 패치 갭이 만든 공백

CVE-2026-85046은 2026년 8월 4일 민간 연구자가 Chromium 프로젝트에 보고했습니다. 수정 커밋은 8월 7일 공개 V8 저장소에 반영됐지만, 이 수정이 담긴 Chrome 스테이블 버전 152.0.7977.82는 9월 3일에 배포됐습니다. 익스플로잇 전달 문서 page.html에는 빌드 문자열 b20260829a가 남아 있고, Volexity는 스크립트에 남은 날짜 흔적을 근거로 개발 시점을 8월 27~29일로 봤습니다. Proofpoint가 처음 공격을 관측한 시점은 8월 28일입니다. Volexity는 익스플로잇 개발자가 Chromium 소스의 수정 커밋을 역분석한 것으로 중간 수준의 확신으로 판단했습니다.

수정 커밋은 V8 최적화 컴파일러가 Array.prototype.sort 호출을 인라인하는 조건을 좁히는 내용입니다. 한 호출 지점이 여러 종류의 배열을 받아온 실행 기록(다형성 피드백)이 있으면, 컴파일러는 각 배열의 요소 저장 형식(elements kind)을 합집합으로 묶어 특화합니다. 아래 코드는 이 커밋이 V8 소스 파일 src/compiler/js-call-reducer.ccReduceArraySort 함수에 추가한 검사입니다. 모든 수신 객체의 요소 형식이 일치할 때만 인라인을 허용하도록 바꿔, 합집합 형식으로 특화된 코드가 실제와 다른 배열에 값을 다시 써 넣는 경로를 막았습니다.

@@ -4126,6 +4133,11 @@ Reduction JSCallReducer::ReduceArraySort(Node* node,
   IteratingArrayBuiltinHelper h(node, broker(), jsgraph(), dependencies());
   if (!h.can_reduce()) return h.inference()->NoChange();
 
+  // The union kind is only an upper bound on each receiver's own kind. Loads
+  // through it widen and are sound; stores narrow and are not. Unlike the
+  // iterating builtins, sort writes its snapshot back into the receiver.
+  if (!h.all_elements_kinds_equal()) return h.inference()->NoChange();
+
   // Only non-holey, non-double PACKED kinds are supported.  Holey arrays need
   // hole handling; double arrays need a FixedDoubleArray temp copy.
   if (IsHoleyElementsKind(h.elements_kind())) return h.inference()->NoChange();

정렬은 읽기 전용 순회와 달리 요소를 복사해 두고 비교 함수를 실행한 뒤 그 복사본을 배열에 다시 써 넣습니다. 커밋 메시지 기준으로, 비교 함수가 실행 중 배열을 다른 요소 형식으로 바꿔도 이후 검증은 원래 집합에 속한다는 이유로 이를 통과시킵니다. 그래서 힙에 놓인 객체(HeapObject)가 작은 정수만 담아야 하는 배열(Smi 배열)에 저장되고, 뒤따르는 코드는 그 값을 정수로 읽습니다. 같은 메모리를 실제와 다른 자료형으로 다루는 취약점(타입 혼동)이며, 이 킷은 이를 발판으로 V8 샌드박스 안에서 메모리를 읽고 쓰는 수단을 얻습니다.

■ 탐지 및 점검

• 단말 위협 탐지·대응(EDR)에서 chrome.execmd.exe를 실행하고 그 아래에서 curl.exe%TEMP% 경로로 실행 파일을 내려받아 곧바로 구동한 프로세스 트리를 조회합니다.

• EDR 파일 변경 이력이나 백업본을 이용해 Chrome 프로필의 Secure Preferences에서 _encrypted_hash·super_encrypted_hash 값이 삭제된 뒤 재생성됐는지 확인합니다. 현재 파일만으로는 과거 삭제 여부를 판단하기 어렵습니다.

• 정상 업데이터 이름을 흉내낸 예약 작업(EdgeCore_AutoUpdate, MicrosoftEdgeUpdatesTaskMachine, Avpcheckup, GeForceService, Windows Scheduled System)이 등록됐는지 확인합니다.

• 이 캠페인 샘플 기준 명령·제어(C2) 도메인(cloud.shinewrist[.]net, ocr[.]opusaccel[.]top, gitprogram[.]com)과 IP(206.166.251.164) 접속 이력을 DNS·프록시 로그에서 조회합니다. 전체 IoC 목록은 참고 자료의 두 리포트에 있습니다.

• 공개된 피싱·익스플로잇 주소에 접속했거나 의심 메일을 받은 취약 버전 Chrome 단말을 우선 조사합니다.

✅ CHECK

예약 작업 이름이나 파일명 하나만으로는 침해를 확정할 수 없습니다.
브라우저에서 시작된 비정상 프로세스 트리나 캠페인 IoC가 확인되면 주변 로그를 함께 조사합니다. 고신뢰 행위가 확인되거나 여러 신호가 겹치면 단말을 우선 격리합니다.

■ 대응 방안

• Chrome을 153.0.8010.36(Linux) 또는 153.0.8010.36·.37(Windows·macOS) 이상으로 올리고, 브라우저를 재시작해 업데이트를 적용해야 합니다.

• Microsoft Edge, Opera 등 Chromium 기반 브라우저를 사내 표준으로 쓰고 있다면 동일한 V8 수정이 반영된 빌드인지 확인합니다.

• 2026년 9월 Windows 보안 업데이트를 적용해 CVE-2026-85880을 제거합니다. 익스플로잇이 대상으로 삼은 Windows 10 1809~22H2, Windows 11 21H2, Windows Server 2019·2022 자산을 먼저 처리합니다.

• 캠페인 연관 흔적이 확인된 단말은 먼저 격리하고 증거를 보존한 뒤 악성 확장 프로그램·예약 작업·페이로드를 제거하거나 재이미징합니다. 이후 깨끗한 단말에서 자격증명과 브라우저 세션 쿠키를 폐기·재발급합니다.

• 브라우저 업데이트 배포 정책을 점검해 스테이블 릴리스 공개부터 적용까지의 지연을 줄입니다. 소스 수정만 공개된 구간에는 적용할 패치가 없으므로, 고위험 사용자에게는 브라우저 격리나 외부 링크 검사 적용을 함께 검토합니다.

[참고 자료]

Volexity — Mind the Patch Gap: 중국계 위협 행위자들의 Chrome·Windows 제로데이 연쇄 분석

Proofpoint — Once in a BlueMoon: 다수 국가연계 행위자의 신규 익스플로잇 체인 채택

V8 수정 커밋 원문 diff — Array.prototype.sort 인라인 조건 제한 (2026-08-07)

Chrome 스테이블 채널 업데이트 (2026-09-03)

Chrome 스테이블 채널 업데이트 (2026-09-08)

NVD 취약점 정보 — CVE-2026-85046

NVD 취약점 정보 — CVE-2026-87491

NVD 취약점 정보 — CVE-2026-85880

CISA 실제 악용 취약점 목록 — CVE-2026-85046

CISA 실제 악용 취약점 목록 — CVE-2026-87491

CISA 실제 악용 취약점 목록 — CVE-2026-85880

SecurityWeek — Chrome 153, 2026년 일곱 번째 제로데이 패치

  • #EQST_NOW
  • #취약점

관련 서비스

더 많은 보안 인사이트

SK쉴더스 유튜브 채널에서 확인하세요.

SK쉴더스 유튜브 채널에서 확인하세요.
보안 트렌드와 대응방법

매월 뉴스레터로 확인하세요.

매월 뉴스레터로 확인하세요.