블로그
home
Nation-State Cyber Actors Analysis Report
home

Anthropic Mythos Preview Project Glasswing 보고서 발표

작성자
김미희
감수인
작성일
2026/05/29
배포일
2026/05/29
문서등급
TLP:CLEAR
Tags
Project GlassWing
Claude Mythos Priview
문서유형
TechNote

01. Executive Summary

AI기업 앤트로픽(Anthropic)이 지난 5월 22일 프로젝트 글래스윙(Project Glasswing) 초기 보고서를 통해서 클로드 미토스 프리뷰(Claude Mythos Preview)를 활용해 약 50여 곳의 파트너와 함께 한 달 만에 고위험 또는 치명적 수준의 취약점 발견
2026년 5월 22일 기준으로 281개의 오픈 소스 프로젝트에서 총 1,596개의 취약점 중 96개가 패치 완료되고 88개는 CVE가 지정되었으며 나머지는 프로젝트 관리자가 보안권고를 발표하지 않고 수정사항을 배포
미토스를 통해 발견된 취약점 15건(중복 1건 포함) 및 GHSA에 포함된 18건을 포함한 32건의 취약점 정보 공개
5월 26일(화) 과학기술정보통신부는 인공지능 보안 위협에 대응하기 위해 오픈 AI사(社)와 인공지능 보안 위협 대응, 인공지능 안전·신뢰 확보 등 협력 방안 모색을 위해 오픈 AI 측이 운영 중인 정부‧기관용 신뢰 기반 접근 프로그램(GTC)의 참여를 공식화
더불어 금융보안원에서는 5월 27일(수)에 ‘앤트로픽 글래스윙 취약점 공개 관련 위협 분석’ 보고서를 통해 미토스가 발견한 주요 취약점 정보를 공유하고 선제적 대응을 주문
대응방안
발견된 취약점 15종(중복제외 14종)에 대해서 보안업데이트 필요
앤트로픽은 기존 소프트웨어 보안은 새로운 취약점을 빨리 찾는데 주안점이 있었으나, AI 접목 이후에는 AI가 찾아낸 취약점의 빠른 검증과 패치가 중요
치명적인 위협의 TTE(Time-to-Exploit)가 단축됨에 따라 수동 패치 체계에서 AI를 통한 패치의 '안전성 및 회귀 테스트(Regression Testing) 자동화’와 단순한 코드 결함이 아닌 공격 가능성(Exploitability)에 대해서 선별(Triage) 최적화가 필요

02. Overview

2.1. 개요

AI기업 앤트로픽(Anthropic)이 지난 5월 22일 프로젝트 글래스윙(Project Glasswing) 초기 보고서를 통해서 클로드 미토스 프리뷰(Claude Mythos Preview)를 활용해 약 50여 곳의 파트너와 함께 한 달 만에 고위험 또는 치명적 수준의 취약점 발견
앤트로픽은 미토스 프리뷰로 1000개가 넘는 오픈소스 프로젝트를 스캔한 결과 전체 심각도 기준 23,019건의 취약점 발견
2026년 5월 22일 기준으로 281개의 오픈 소스 프로젝트에서 총 1,596개의 취약점 중 97개가 패치 완료되고 88개는 CVE가 지정되었으며 나머지는 프로젝트 관리자가 보안권고를 발표하지 않고 수정사항을 배포
앤트로픽은 취약점 공개 원칙에 따라 오픈소스에서 발견한 취약점과 Anthropic이 연구한 취약점에 대해서 업계 표준인 90일 공개 기준을 준수하고 가능한 경우 사람이 직접 검토한 보고서와 수정 제안을 제공하며 유지보수 담당자가 실제로 처리할 수 있는 속도로 제출물을 배포
오픈소스 프로젝트에서 발견된 취약점 2만3019건 중 유지보수자에게 보고된 것은 1,596건이고 실제 패치가 완료된 것은 97건으로 확인
고위험 또는 치명적 수준으로 보고된 530건 중에서도 패치가 완료된 것은 75건, 공개 보안 권고문이 나온 것은 65건으로 확인
고위험 또는 치명적 수준의 버그를 수정하는 데는 평균 2주가 소요되며 품질이 낮은 AI 생성 버그 보고서까지 증가되면서 보안패치의 리소스가 급격하게 증가
▽ 클로드 미토스 프리뷰를 통한 취약점 발견 및 패치 현황

2.2. AI모델을 활용한 취약점 증가에 따른 업계 현황

(CISA) 프로젝트 글래스윙(Project Glasswing) 초기 보고서가 공개되기 하루 전인 2026년 5월 21일, 미국의 CISA에서는 알려진 악용 취약점(KEV, Known Exploited Vulnerability)을 신고하여 KEV 카탈로그에 등재할 수 있는 플랫폼 공개
(KISA) 한국인터넷진흥원(KISA)에서도 2026년 5월 25일 ‘AI 기반 사이버 위협 확대 우려에 따른 보안 점검 및 대비태세 강화 요청을 통해 대외적인 보안 상황을 반영하여‘AI기반 사이버공격 대비 기업 대응 요령’과 ‘AI기반 사이버공격 대비를 위한CEO행동 수칙’을 통한 사이버 보안 강화활동 요쳥
5월 26일(화) 과학기술정보통신부는 인공지능 보안 위협에 대응하기 위해 오픈 AI사(社)와 인공지능 보안 위협 대응, 인공지능 안전·신뢰 확보 등 협력 방안 모색을 위해 오픈 AI 측이 운영 중인 정부‧기관용 신뢰 기반 접근 프로그램(GTC)의 참여를 공식화
더불어 금융보안원에서는 5월 27일(수)에 ‘앤트로픽 글래스윙 취약점 공개 관련 위협 분석’ 보고서를 통해 미토스가 발견한 주요 취약점 정보를 공유하고 선제적 대응을 주문

2.3. 향후 대응방안

앤트로픽은 기존 소프트웨어 보안은 새로운 취약점을 빨리 찾는데 주안점이 있었으나, AI 접목 이후에는 AI가 찾아낸 취약점의 빠른 검증과 패치가 중요하다고 언급
더불어 앤트로픽은 미토스급 모델을 아직 일반에 공개하지 않는 이유에 대해서도 이러한 AI모델의 오용을 대응할 만큼 충분한 안전장치를 갖추지 못했기 때문에 향후 미국과 동맹국 정부 등 핵심 파트너와의 협력을 통해 프로젝트 글래스윙을 확대하고 안전장치 말현 후 미토스급 모델을 일반에 공개할 계획이라고 밝힘
AI를 통한 패치의 '안전성 및 회귀 테스트 자동화’ : AI가 생성한 패치를 격리된 샌드박스 환경에서 자동으로 컴파일하고, 기존 코드들과의 충돌 여부를 확인하는 자동화된 회귀 테스트(Regression Testing) 파이프라인을 AI와 결합
패치를 작성한 AI 에이전트와 별개로, 해당 패치의 무결성을 검증하고 허점을 찾아내는 '적대적 검토(Adversarial Review) 에이전트'를 두어 패치 승인 프로세스를 자동화 필요
공격 가능성(Exploitability)에 대해서 선별(Triage) 최적화 : 단순히 코드의 결함을 언급하는 것이 아니라 외부의 공격자가 실제로 취약점을 통해 악용이 가능한지 AI 에이전트가 추적하도록 연계 필요

03. 취약점 발견 현황

3.1. 파트너사들의 취약점 탐지 결과

클라우드플레어(Cloudflare)는 핵심 시스템에서 버그 2000건이 발견되었으며, 이 중 400건은 고위험 또는 심각한 수준의 등급으로 확인 → 오탐률이 사람의 테스팅보다 오히려 낫다고 평가
영국 AI 보안연구소(AISI)도 다단계 사이버 공격을 모의하는 두 개의 '사이버 레인지'를 처음부터 끝까지 모두 해결한 첫 모델이라고 보고
모질라(Mozilla)는 미토스 프리뷰를 시험하는 과정에서 파이어폭스 150 버전의 취약점 271건을 찾아 수정했는데, 이는 직전 버전을 기존 모델로 점검했을 때보다 10배 이상 많은 수치
독립 보안 플랫폼 엑스보우(XBOW) 역시 미토스 프리뷰가 기존 모든 모델을 크게 뛰어넘는다고 평가
일부 협력 은행에서는 위협 행위자가 고객의 이메일 계정을 탈취하고 스푸핑 전화까지 건 상황에서, 미토스 프리뷰가 150만 달러 규모의 사기성 송금을 탐지해 차단

3.2. 오픈소스 프로젝트의 취약점 점검 결과

오픈소스 프로젝트 1,000여 개도 미토스 프리뷰로 점검한 결과 2만 3,019건의 취약점 가운데 고위험 또는 심각 등급으로 추정되는 것이 6,202건 발견
이 중 1,752건은 6개 독립 보안 연구 기업 등이 정밀 검토했는데, 90.6%인 1,587건이 실제 취약점으로 확인되었으며, 62.4%인 1,094건이 고위험 또는 심각 등급으로 재확인
앤트로픽에서 현재의 취약점 진위여부 검증 후 추가 발견이 없더라도 오픈소스 코드에서만 약 3,900건의 고위험 및 심각 취약점을 찾아낼 것으로 추산
대표 사례로는 전 세계 수십억 대 기기에서 쓰이는 오픈소스 암호화 라이브러리 'wolfSSL'의 결함인 CVE-2026-5194는 미토스 프리뷰를 통해 공격자가 인증서를 위조해, 은행이나 이메일 서비스처럼 보이는 가짜 웹사이트를 정상 사이트처럼 운영할 수 있게 하는 익스플로잇 구현

3.3. 미토스 프리뷰 빌드 PoC 익스플로잇

클라우드플레어(Cloudflare)가 발표한 Project Glasswing: what Mythos showed us에 따르면 기존의 범용 프론티어 모델로 가능했던 수준과 현재 미토스 프리뷰가 보여주는 수준의 차이는 단순히 이전 기술의 미세한 개선이 아니라 익스플로잇 체인 구축(Exploit chain construction)과 개념증명(PoC)를 생성하는 능력을 연계하는 기술에 장점을 보임
익스플로잇 체인 구축 (Exploit chain construction) : 실제 공격에서 단 하나의 버그만 사용하는 경우는 드물기 때문에 보통 여러 개의 작은 공격 프리미티브(Primitives)를 사슬처럼 엮어 하나의 작동하는 익스플로잇을 생성하게 되는데 미토스 프리뷰는 이러한 여러 프리미티브를 가져와 이를 어떻게 결합하여 작동하는 증명을 만들지 추론하는 과정을 수행
개념 증명(PoC) 생성 (Proof generation) : 버그를 찾는 것과 그것이 악용 가능하다는 것을 증명하는 것은 별개의 문제이며, 미토스 프리뷰는 이 두 가지를 모두를 수행하는데 이 모델은 의심되는 버그를 유발할 코드를 작성하고, 임시(Scratch) 환경에서 해당 코드를 컴파일한 뒤 실행하며 정상적으로 PoC가 동작하는지 지속적으로 반복하는 과정을 수행하여 간극을 최소화
클라우드플레어(Cloudflare)가 사용한 취약점 발견 하네스의 전체 파이프라인에는 정찰, 탐색, 검증, 격차 해소, 중복 제거, 추적, 피드백 및 보고 단계가 포함되며, 최종 추적 단계에서는 공격자가 제어하는 입력이 시스템 외부에서 확인된 버그에 실제로 도달할 수 있는지 여부를 판단
이 과정에서 중요한 것은 AI모델을 저장소에 직접 연결해서 취약점은 분석하는 것이 성과가 좋지 않으며,
진정한 취약점 연구를 위해서는 △ 각 에이전트 작업의 특정 기능, 공격 유형 및 신뢰경계를 제한하여 범위를 좁히고, △ 상이한 에이전트간의 노이즈를 크로스 검토하고, △ 공격 단계별로 버그를 찾고 공격 가능성을 판단하는 단계를 역할별로 구분하는 것이 훨씬 더 좋은 성과를 도출
▽ 클라우드플레어(Cloudflare)가 사용한 취약점 발견 하네스 구성
특히 취약점을 발견하는 과정에서 중요한 점은 패치 속도보다 보안 아키텍처의 중요성을 언급
공격 및 방어 타임라인이 극도로 압축되면서 '2시간 내 패치' 같은 SLA가 등장했으나, 충분한 회귀 테스트 없는 고속 패치는 더 큰 장애를 초래 → 실제 AI에게 패치를 맡겼을 때 다른 코드가 망가지는 부작용 확인
따라서 핵심은 패치 속도 경쟁이 아닌, "버그가 존재하더라도 전방에서 차단하고 파급력을 격리하는 근본적인 방어 아키텍처 설계"로 전환이 필요하다고 언급

04. 앤트로픽 미토스 프리뷰를 통해 공개된 취약점 목록

4.1. CVE 목록

앤트로픽 미토스 프리뷰를 통해 공개된 취약점 목록 : 15건(CVE-2026-27654, 은 버그 발생위치가 다른 2건의 취약점 포함, 중복제외 13건)
NO
Identifier
CVSS(NIST)
취약점 공개 시간
내부 분석ID
Bug_Class
Project
위험도
취약점 설명
1
8.2 HIGH
2026-05-20
ANT-2026-HY56VRSB
heap-buffer-overflow
nginx
high
Heap buffer overflow in DAV COPY/MOVE with alias directive. Destination URI shorter than alias length causes size_t underflow in ngx_http_map_uri_to_path buffer calculation, then ngx_copy overflows th
2
8.2 HIGH
2026-05-20
ANT-2026-VS18SA90
arbitrary-file-write
nginx
critical
unauthenticated remote file write in nginx WebDAV module
3
7.5 HIGH
2026-05-20
ANT-2026-EBDTPNVH
heap-buffer-overflow
jq
medium
Integer overflow in string concatenation leading to 1 GB memcpy heap buffer overflow
4
7.5 HIGH
2026-05-20
ANT-2026-9SZMPW41
heap-buffer-overflow
MapServer
medium
Heap buffer overflow in SLD categorize threshold parsing due to wrong counter variable in reallocation guard
5
N/A
2026-05-20
ANT-2026-DJBBBBPE
broken-access-control
temporalio/temporal
critical
Cross-namespace manipulation (including deletion) of workflows on the same cluster
6
7.1 HIGH
2026-05-20
ANT-2026-SB4PHA43
crypto-failure
wolfSSL
high
ARIA-GCM Nonce Reuse in TLS 1.2 Record Encryption in wolfSSL
7
7.5 HIGH
2026-05-21
ANT-2026-VV0PRKKV
heap-buffer-overflow
wolfSSL
medium
8
4.3 MEDIUM
2026-05-20
ANT-2026-6615Y595
heap-buffer-overflow
wolfSSL
medium
Final Assessment: 2-Byte Heap Overflow in wolfSSL_X509_notAfter / wolfSSL_X509_notBefore
9
8.1 HIGH
2026-05-20
ANT-2026-KNXJMVYC
signature-bypass
wolfSSL
high
eccsi universal signature forgery via r 0 s 0 missing s
10
7.5 HIGH
2026-05-20
ANT-2026-ZZY4987K
integer-overflow
wolfSSL
high
cmac 32 bit totalsz wraparound prefix substitution forg
11
8.1 HIGH
2026-05-20
ANT-2026-RSSMAMA7
crypto-failure
wolfSSL
high
wolfssl evp chacha20 poly1305 poly1305 tag never verifi
12
5.9 MEDIUM
2026-05-20
ANT-2026-P23DVQM2
crypto-failure
wolfSSL
high
cms authenvelopeddata aead forgery via gcm tag truncati
13
8.1 HIGH
2026-05-20
ANT-2026-K8YY7WWS
improper-cert-validation
wolfSSL
high
wolfssl x509 verify cert leaf signature verification by
14
9.1 CRITICAL
2026-05-20
ANT-2026-0JRYQPCF
heap-buffer-overflow
wolfSSL
high
wolfssl ech heap buffer overflow via publicname sni pol
15
8.8 HIGH(CNA기준)
2026-05-20
ANT-2026-CN7KX43N
path-traversal
nomad
critical
nomad: path-traversal at client/hostvolumemanager/host_volume_plugin.go:229
벤더별 취약점 분류 내역
Project
Identifier
Bug_Class
취약점 설명
영향받는 버전
안전한 버전
wolfSSL
CVE-2026-5446
crypto-failure
wolfSSL에서 발생하는 ARIA-GCM nonce 재사용 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5447
heap-buffer-overflow
wolfSSL X.509 인증서 처리 과정에서 발생하는 힙 버퍼 오버플로우 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5448
heap-buffer-overflow
wolfSSL OpenSSL 호환 API의 X.509 인증서 날짜 필드 처리 과정에서 발생하는 버퍼 오버플로우 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5477
integer-overflow
wolfSSL에서 발생하는 AES-EAX 및 CMAC 인증 우회 가능 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5479
crypto-failure
wolfSSL EVP 계층의 ChaCha20-Poly1305 복호화 과정에서 발생하는 인증 태그 검증 누락 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5500
crypto-failure
wolfSSL PKCS7 AuthEnvelopedData 처리 과정에서 발생하는 AES-GCM 인증 태그 길이 검증 미흡 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5501
improper-cert-validation
wolfSSL OpenSSL 호환 API에서 발생하는 인증서 체인 검증 우회 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5503
heap-buffer-overflow
wolfSSL TLS ECH SNI 처리 과정에서 발생하는 버퍼 오버플로우 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
CVE-2026-5466
signature-bypass
ECCSI 서명 검증에 사용되는 wolfSSL의 함수 wc_VerifyEccsiHash는 서명의 스칼라 구성 요소 r가 s유효 범위 내에 있는지 여부를 검증 누락으로 신원에 대한 검증 우회하는 위조 서명 생성 취약점
wolfSSL 5.9.1 미만
wolfSSL 5.9.1 이상
nginx
CVE-2026-27654
heap-buffer-overflow / arbitrary-file-write
NGINX 오픈 소스 및 NGINX 플러스의 ngx_http_dav_module 모듈에 영향을 미치는 힙 기반 버퍼 오버플로 취약점
NGINX Open Source 1.29.6 이하 NGINX Plus R34 이하
NGINX Open Source 1.29.7 이상 NGINX Plus R35 이상
jq
CVE-2026-32316
heap-buffer-overflow
JSON처리 도구인 jq에서 jvp_string_append() 및 jvp_string_copy_replace_bad 함수에서 정수 오버플로 취약점
1.8.1 이하
1.8.2 이상
MapServer
CVE-2026-33721
heap-buffer-overflow
웹 기반 GIS 애플리케이션 개발 시스템 MapServer의 SLD(Styled Layer Descriptor) 파서의 힙 버퍼 오버플로우 쓰기 취약점
4.2부터 8.6.1 이전 버전
8.6.2 이상
nomad
CVE-2026-7474
path-traversal
HashiCorp Nomad 및 Nomad Enterprise 2.0.1 이전 버전은 경로 탐색 공격을 통해 클라이언트 호스트에서 코드 실행 취약점
2.0.1, 1.11.5 및 1.10.11 이하
2.0.1, 1.11.5 및 1.10.11 이상
temporalio/temporal
CVE-2026-5199
broken-access-control
공격자가 제어하는 네임스페이스의 작성자 역할 사용자는 동일 클러스터 내 피해자 네임스페이스의 워크플로 또는 활동을 신호 전송, 삭제 및 재설정 할 수 있는 취약점
Temporal Server v1.29.0 through v1.29.4Temporal Server v1.30.0 through v1.30.2Temporal Cloud
Temporal Server v1.29.1 이상

4.2. GHSA(GitHub Security Advisory) 목록

GHSA(GitHub Security Advisory) : 글래스윙 프로젝트를 통해 공개된 분석결과에 할당된 GitHub 보안권고 내역으로 취약점이 포함된 내역은 아래 표기된 기록을 통해 공개적으로 접근이 가능하나 일부 항목은 기관내에서 공개 처리를 기다리며 일부 보류 중인 상태
NO
Identifier
Record_Kind
Revealed
Ant_ID
Bug_Class
Project
Severity
Title
1
GHSA-9f49-8x56-jmjc
ghsa
2026-05-20
ANT-2026-TZQ1KH7E
use-after-free
libyang
medium
Heap use-after-free write in metadata list management during XML data parsing due to incorrect list head pointer update
2
GHSA-cc7p-2j3x-x7xf
ghsa
2026-05-20
ANT-2026-ZQ8AY22X
privilege-escalation
CraftCMS
high
Privilege Escalation/Bypass through UsersController->actionImpersonateWithToken()
3
GHSA-chgx-jx3p-rf73
ghsa
2026-05-20
ANT-2026-P2DWB2SK
signature-bypass
mastodon
high
LD-Signature bypass via JSON-LD named-graph restructuring
4
GHSA-crr4-7rm4-8gpw
ghsa
2026-05-20
ANT-2026-6DSMTXZ8
ssrf
mastodon
high
SSRF Bypass via IPv6 Unspecified Address (`::`) in Mastodon
5
GHSA-f26g-jm89-4g65
ghsa
2026-05-20
ANT-2026-6SNS6KMP
rce
GitoxideLabs/gitoxide
high
RCE when updating a Git submodule of a malicious repository
6
GHSA-j273-m5qq-6825
ghsa
2026-05-20
ANT-2026-9VJ9JJXQ
path-traversal
junrar
medium
Arbitrary file write due to backslash path traversal
7
GHSA-mpxh-8fq3-x8mh
ghsa
2026-05-20
ANT-2026-H97FY6C8
heap-buffer-overflow
freerdp
high
Heap-buffer-overflow in cliprdr_main.c:547
8
GHSA-mpxh-8fq3-x8mh
ghsa
2026-05-20
ANT-2026-HN9XZXJ9
heap-buffer-overflow
freerdp
medium
heap-buffer-overflow write (attacker-controlled offset, partially-controlled data via rle delta values; up to ~15kb overwrite past ptempdata with these parameters, further with larger nxdst) in planar.c:472
9
GHSA-mpxh-8fq3-x8mh
ghsa
2026-05-20
ANT-2026-RXYVE4DZ
heap-buffer-overflow
freerdp
high
Heap-buffer-overflow in sanitizer_common_interceptors.inc:827
10
GHSA-mvpx-xj7r-3p3r
ghsa
2026-05-20
ANT-2026-H97FY6C8
heap-buffer-overflow
freerdp
high
Heap-buffer-overflow in cliprdr_main.c:547
11
GHSA-mvpx-xj7r-3p3r
ghsa
2026-05-20
ANT-2026-HN9XZXJ9
heap-buffer-overflow
freerdp
medium
heap-buffer-overflow write (attacker-controlled offset, partially-controlled data via rle delta values; up to ~15kb overwrite past ptempdata with these parameters, further with larger nxdst) in planar.c:472
12
GHSA-mvpx-xj7r-3p3r
ghsa
2026-05-20
ANT-2026-RXYVE4DZ
heap-buffer-overflow
freerdp
high
Heap-buffer-overflow in sanitizer_common_interceptors.inc:827
13
GHSA-p6r2-4hgm-m6ff
ghsa
2026-05-20
ANT-2026-H97FY6C8
heap-buffer-overflow
freerdp
high
Heap-buffer-overflow in cliprdr_main.c:547
14
GHSA-p6r2-4hgm-m6ff
ghsa
2026-05-20
ANT-2026-HN9XZXJ9
heap-buffer-overflow
freerdp
medium
heap-buffer-overflow write (attacker-controlled offset, partially-controlled data via rle delta values; up to ~15kb overwrite past ptempdata with these parameters, further with larger nxdst) in planar.c:472
15
GHSA-p6r2-4hgm-m6ff
ghsa
2026-05-20
ANT-2026-RXYVE4DZ
heap-buffer-overflow
freerdp
high
Heap-buffer-overflow in sanitizer_common_interceptors.inc:827
16
GHSA-w52v-v783-gw97
ghsa
2026-05-20
ANT-2026-H5T8XKWR
sql-injection
TryGhost/Ghost
critical
SQL injection in Content API
17
GHSA-x9h5-r9v2-vcww
ghsa
2026-05-20
ANT-2026-T44WA684
heap-buffer-overflow
ImageMagick
high
Heap buffer overflow in MVG pattern rendering via CopyMagickString without bounds check
18
GHSA-xh8f-g2qw-gcm7
ghsa
2026-05-20
ANT-2026-BRQZSDGZ
path-traversal
minio
medium
minio: path-traversal at cmd/xl-storage.go:3194-3218 (sink); cmd/storage-rest-server.go:1287-1326 (handler)

05. 고위험군 취약점 분석

공개된 취약점 목록 중 영향도가 높은 NGINX(CVE-2026-27654)에 대한 상세분석 결과

5.1. CVE-2026-27654(8.2 HIGH, NIGINX)

(취약점 개요) NGINX ngx_http_dav_module size_t 언더플로우를 통한 힙 버퍼 오버플로우 (원격 DoS / 잠재적 RCE)

1) 취약점 발생원인

src/http/modules/ngx_http_dav_module.c 파일의 ngx_http_dav_copy_move_handler() 함수는 목적지 헤더의 URI 경로 구성 요소에서 location 프리픽스(prefix) 길이를 빼는 방식으로 목적지 URI 길이를 계산
두 값 모두 size_t(부호 없는 64비트 정수) 타입
목적지 경로가 location 프리픽스보다 짧을 경우, 이 뺄셈 연산에서 언더플로우가 발생하여 ~0에 가까운 거대한 값이 생성
이는 결과적으로 결과적으로 memcpy 길이로 전달되어, 할당된 7바이트 크기의 힙 버퍼를 오버플로우시키고 워커 프로세스를 비정상 종료
alias 지시문이 매핑된 DAV location으로 정밀하게 조작된 단 하나의 MOVE 또는 COPY 요청을 보내는 것만으로도 이 오버플로우를 유발
NGINX 마스터 프로세스가 워커 프로세스를 다시 재생성하지만, 공격자가 요청을 반복하면 서버는 지속적인 크래시 루프로 인해 지속적 서비스 거부 상태에 봉착
ASan(AddressSanitizer) 분석 결과에 따르면, ngx_http_dav_copy_move_handler에서 호출된 ngx_http_core_module.c:1949 라인의 memcpy에서 negative-size-param: (size=-7) 에러가 발생하는 것으로 확인
src/http/modules/ngx_http_dav_module.c 파일의 ngx_http_dav_copy_move_handler()에서 취약점이 발생하는 지점의 코드 수정내역
▽ 기존 코드 상에서 취약점이 발생하는 소스코드 구간
static ngx_int_t ngx_http_dav_copy_move_handler(ngx_http_request_t *r) { // [중략] 파싱 및 호스트 검증 과정 destination_done: // [기능 A] 공격자가 조작한 Destination URI의 경로와 길이를 추출 duri.len = last - p; // 예: "/x" 이므로 길이는 '2' duri.data = p; flags = NGX_HTTP_LOG_UNSAFE; if (ngx_http_parse_unsafe_uri(r, &duri, &args, &flags) != NGX_OK) { goto invalid_destination; } // [중략] 컬렉션 검증 및 오버라이트 헤더 처리 overwrite_done: // [기능 B] 수신처(From) 주소를 시스템 주소로 변환 if (ngx_http_map_uri_to_path(r, &path, &root, 0) == NULL) { return NGX_HTTP_INTERNAL_SERVER_ERROR; } // [기능 C] 원래의 r->uri를 백업하고, duri(목적지 주소)로 스왑(Swap) uri = r->uri; r->uri = duri; // 이제 r->uri.len 변수는 '2'가 됩니다. // ★★★ [취약점 발생 지점] ★★★ // 패치된 코드에 있던 'if (duri.len < clcf->alias)' 가드 코드가 원래는 없음 // 검증 없이 곧바로 NGINX 코어의 경로 변환 함수를 호출 if (ngx_http_map_uri_to_path(r, &copy.path, &root, 0) == NULL) { return NGX_HTTP_INTERNAL_SERVER_ERROR; } r->uri = uri; // 원래 URI로 복구 (이미 메모리는 파괴된 후) // [후략] 실제 파일 복사/이동 수행 }
JavaScript
복사
[1단계] 기본 코드 상에서는 [기능 C]가 실행되면서 NGINX의 공통 변수인 r->uri.len에 공격자가 조작한 목적지 길이인 2가 검증 없이 강제로 주입
[2단계] NGINX는 오염된 r->uri를 들고 코어 파일인ngx_http_core_module.c의 주소 변환 함수ngx_http_map_uri_to_path로 진입
연산 공식 : r->uri.len (목적지 길이) - alias 프리픽스 길이
실제 대입 : 2 - 9 = -7
실행결과 : 변수 타입이 부호 없는 정수(size_t)이기 때문에 컴퓨터는 -7을 표현하지 못하고 뒤로 돌아가 0xFFFFFFFFFFFFFFF9라는 거대한 양수 발생
[3단계] 정수 오버플로우
연산 공식 : 기존 alias 경로 길이 (13) + 언더플로우 발생 값 (0xFFFFFFFFFFFFFFF9)
실제 대입 : 13 + 0xFFFFFFFFFFFFFFF9 = 0x10000000000000006
실행결과 : 64비트 저장 한계를 넘어가면서 맨 앞의 1이 잘려 나가는 오버플로우가 발생하여, 최종 버퍼 길이는 고작 6 바이트로 변질되고 NGINX는 힙(Heap) 메모리에 단 7바이트(6 + 널 바이트 1)짜리 초소형 버퍼를 생성
[4단계] 힙메모리에서 문제 발생
공간을 만든 후 데이터를 채우기 위해 복사 함수(memcpy 계열)를 호출하는데 이때 복사할 크기 인자로 [2단계]에서 생성된 거대한 값(0xFFFFFFFFFFFFFFF9)을 그대로 전달
단 7바이트짜리 버퍼를 초과한 크기의 데이터가 들어오면서 인접한 힙 메모리 영역 전체가 순식간에 파괴됩되고, 이로 인해 Segmentation Fault (SIGSEGV) 에러가 터지며 NGINX 웹 서버의 워커 프로세스가 그 즉시 강제 종료
▽ 보안패치된 소스코드 구간
// 1. 코어 모듈 설정 정보(clcf)를 가져옴 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); // 2. [★ 패치 핵심 구간 ★] 취약점 방어를 위한 가드 조건문 if (clcf->alias && clcf->alias != NGX_MAX_SIZE_T_VALUE && duri.len < clcf->alias) { ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "client sent invalid \"Destination\" header: \"%V\"", &dest->value); return NGX_HTTP_BAD_REQUEST; // 400 에러를 반환하고 즉시 종료! }
JavaScript
복사
공격자가 조작한 목적지 주소의 길이(duri.len = 2)가 NGINX 설정에 박혀있는 프리픽스/alias 길이(예: 13)보다 작을 때, 뺄셈 연산(2 - 13)에서 부호 없는 정수 언더플로우가 발생
clcf->alias: 현재 location 블록이 alias 기능을 사용하는지 확인
duri.len < clcf->alias: 요청으로 들어온 목적지 URI의 경로 길이가 alias 프리픽스 길이보다 더 짧은지 직접 비교
이 과정을 통해 목적지 주소가 프리픽스보다 짧아서 언더플로우가 발생할 수 있는 요인이 감지되면, NGINX는 하위 코어 함수인 ngx_http_map_uri_to_path를 호출하기도 전에 연산을 즉시 중단시키고 400 Bad Request 에러

2) 영향받는 버전(Affected) 및 완화버전

영향받는 버전
nginx 0.5.13부터 1.28.2(Stable 버전)까지
nginx 1.29.0부터 1.29.6(Mainline 버전)까지
조건 : -with-http_dav_module 옵션으로 컴파일되고, DAV location 설정 내에서 alias 지시문을 사용하는 경우
완화버전
1.28.3 및 1.29.7 버전에서 수정됨 (커밋 ab4b5b8, PR #1210)

3) PoC 실행방법

# Docker (recommended -- builds vulnerable nginx from source): docker compose up -d --build python3 poc.py --target 127.0.0.1:8080 # Native (builds nginx 1.28.2 from source, no Docker): ./run.sh # non-ASan build (observes SIGSEGV crash) ./run.sh --asan # ASan build (definitive proof) ./run.sh --both # run both sequentially # Against an existing vulnerable nginx instance: python3 poc.py --target <HOST:PORT> python3 poc.py --target <HOST:PORT> --no-put # if trigger file already exists python3 poc.py --target <HOST:PORT> --verbose
JavaScript
복사
요구사항
Target: --with-http_dav_module 옵션으로 컴파일된 nginx, root가 아닌 alias 지시문을 사용하는 location 블록, dav_methods에 COPY 또는 MOVE가 포함되어 있음
Attacker: Python 3, requests 라이브러리 (pip install requests)
네이티브 빌드용: gcc, make, libpcre2-dev, libssl-dev, zlib1g-dev, wget
IGLOO Corp. 2026. All rights reserved.