Search

원격 코드 실행 또는 서비스 거부 공격으로 이어질 수 있는 Netlogon Stack-Based Buffer Overflow CVE-2026-41089 취약점 분석

태그
PurpleHound
Windows
Property
123123.jfif
작성날짜
2026/06/22

1. 개요

본 보고서는 Windows Netlogon의 CVE-2026-41089 Stack-based Buffer Overflow 취약점에 대해 다룬다. 공격자는 도메인 컨트롤러(DC)로 동작하는 Windows 서버에 어떠한 인증도 없이 단 하나의 조작된 CLDAP 패킷(UDP/389)을 전송해 Netlogon 서비스의 메모리 손상을 유발할 수 있다.
2026년 5월 29일 벨기에 사이버보안센터(CCB)는 본 취약점이 In-the-Wild에서 활발히 악용되고 있다고 경고했으며, 제한적이지만 크래시를 유발할 수 있는 PoC 코드 또한 공개된 상태다. 단, Microsoft는 CCB의 악용 주장에 대한 근거를 확인하지 못했다는 입장을 별도로 밝힌 바 있다.
도메인 컨트롤러는 Active Directory 환경의 인증 기반(identity control plane)에 위치하므로, 본 취약점의 성공적 악용은 도메인 전체의 인증 마비 또는 도메인 장악으로 이어질 수 있다. 영향받는 시스템은 즉시 보안 업데이트를 적용해야 한다.
본 보고서는 CVE-2026-41089 취약점의 근본 원인을 심층 분석하고, 이에 대한 방어 및 완화 전략을 제시한다.

2. 취약점 근본 원인 분석

항목
내용
취약점 번호
CVE-2026-41089
취약점 이름
Windows Netlogon Remote Code Execution Vulnerability
CWE
Stack-based Buffer Overflow
취약점 영향
Remote Code Execution
CVSS 3.1
9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Netlogon은 Active Directory 도메인 환경에서 사용자 및 컴퓨터 계정을 인증하고, 멤버 서버와 도메인 컨트롤러 간 보안 채널을 유지하는 핵심 서비스다. CVE-2026-41089 취약점은 Netlogon이 DC locator ping(CLDAP SearchRequest)에 대한 SAM Logon Response를 직렬화하는 과정에서 발생한다.
취약점의 핵심은 netlogon.dll의 헬퍼 함수 NetpLogonPutUnicodeString이다. 이 함수는 소스 문자열 포인터, 최대 문자 개수, 출력 버퍼 커서를 인자로 받지만, 출력 버퍼의 전체 크기를 검증하는 인자가 존재하지 않는다.
wchar_t *NetpLogonPutUnicodeString(const wchar_t *src, int max_chars, wchar_t **cursor) { wchar_t *aligned_dst; // 출력 커서를 2바이트(wchar) 경계로 정렬 NetpULongPtrRoundUp(*cursor, 2, &aligned_dst); wchar_t *dst = aligned_dst; // 정렬 패딩이 발생했다면 그 틈(1바이트)을 0으로 채움 if (aligned_dst != *cursor) *(unsigned char *)*cursor = 0; // 문자 단위 복사: max_chars개에 도달하거나 null을 만날 때까지 // 출력 버퍼 경계(끝) 검사가 전혀 없음 → 오버플로우 발생 지점 wchar_t ch = *src; if (ch) { ptrdiff_t src_offset = (const char *)src - (char *)dst; // src와 dst의 상대 거리 do { if (max_chars-- == 0) break; *dst++ = ch; // 경계 검증 없는 WRITE ch = *(const wchar_t *)((char *)dst + src_offset); // 다음 소스 문자 읽기 } while (ch); } *dst = 0; // null 종료 *cursor = dst + 1; // 커서를 종료 문자 다음으로 전진 return dst + 1; }
C
복사
[코드 1] netlogon!NetpLogonPutUnicodeString 디컴파일 코드
[코드 1]은 출력 경계 검증 없이 유니코드 문자를 복사하는 함수다. 이 함수는 BuildSamLogonResponse에서 528바이트의 크기를 갖는 스택 버퍼에 응답 패킷을 작성하기 위해 연속 3회 호출된다.
// BuildSamLogonResponse NetpLogonPutUnicodeString(domain_info + 216, 36, &cursor); // server name (서버 측) NetpLogonPutUnicodeString(username, 130, &cursor); // 공격자 제어 (최대 130 wchar) NetpLogonPutUnicodeString(domain_info + 72, 32, &cursor); // domain name (서버 측)
C
복사
[코드 2] netlogon!BuildSamLogonResponse 디컴파일 코드 일부
[코드 2]에서 두 번째 인자(36, 130, 32)는 복사할 wide character 개수를 제한하지만, 이 값은 출력 버퍼의 잔여 공간이 아닌 입력 문자 수 기준이다. 공격자는 CLDAP 필터의 User 속성에 최대 130 wide character(260바이트)를 채워 버퍼 중앙을 점유하고, 그 뒤에 이어지는 서버 측 DNS 이름(forest/domain/hostname)을 528바이트 버퍼 경계 밖으로 밀어낸다.
여기서 중요한 쟁점은 두 가지가 있다. 첫 번째는 오버플로우를 발생시키기 위해서 공격 대상 서버는 반드시 50바이트 이상의 길이가 비정상적으로 긴 도메인을 사용해야 한다는 까다로운 조건을 만족 시켜야 한다. 또한, 528바이트의 스택에서 버퍼의 경계를 넘어 덮어 씌워지는 데이터는 공격자가 제어할 수 있는 영역이 아니기 때문에 서비스 거부 공격을 넘어 실제 원격 코드 실행 공격으로 이어지기는 어렵다.
lsass.exe 크래시 유발 및 DoS 시연 영상

3. 공격 영향

본 취약점을 악용할 경우 다음과 같은 위협이 발생할 수 있다.
도메인 인증 마비(서비스 거부): 실증 분석에 따르면 단일 CLDAP 패킷으로 오버플로우가 발생하면 GS 스택 쿠키가 손상되어 __fastfail(예외 코드 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)이 트리거되고 LSASS 프로세스가 크래시되어 윈도우의 재부팅을 유발한다. LSASS는 Kerberos, NTLM, Netlogon 보안 채널 등 모든 인증 서비스를 호스팅하므로, 그 크래시는 DC가 재부팅될 때까지 도메인 전체의 인증을 거부시킨다.
원격 코드 실행 가능성: Microsoft 및 다수 벤더는 본 취약점을 인증 없는 RCE(CVSS 9.8)로 평가한다. 다만 오버플로우 영역이 공격자가 제어할 수 없는 서버 측 DNS 이름으로 채워진다는 점, 추가적인 취약점이 있어야 우회할 가능성이 있는 다양한 스택 메모리 보호 기법(CET, GS)이 존재한다는 점 등 여러 애로 사항이 있어 원격 코드 실행은 이론적으로만 가능하다는 분석도 존재한다.
도메인 장악으로의 확산: 만약 원격 코드 실행이 가능해 DC에서 SYSTEM 권한 코드 실행이 성립할 경우 PPL(Process Protect Light)를 무시하고 자격 증명 탈취, 도메인 관리자 계정 생성, 수평 이동, 랜섬웨어 배포 등 Active Directory 전체 장악으로 이어질 수 있다.

4. 완화 및 권고사항

Product
취약점 영향 버전
Windows Server 2012
6.2.9200.26079 미만 버전 (KB5087470)
Windows Server 2012 R2
6.3.9600.23181 미만 버전 (KB5087471)
Windows Server 2016
10.0.14393.9140 미만 버전 (KB5087537)
Windows Server 2019
10.0.17763.8755 미만 버전 (KB5087538)
Windows Server 2022
10.0.20348.5174 미만 버전 (KB5087424)
Windows Server 2022, 23H2
10.0.25398.2330 미만 버전 (KB5087541)
Windows Server 2025
10.0.26100.32772 미만 버전 (KB5087423)
1.
즉각적인 보안 업데이트 적용: 보고서에서 분석한 취약점에 해당하는 Windows 버전은 위의 표에 명시된 바와 같다. 해당 버전의 Windows를 사용 중인 시스템은 즉시 보안 업데이트를 적용해야 한다.
2.
네트워크 접근 제어 강화: 도메인 컨트롤러의 UDP/389(CLDAP), TCP/135(RPC Endpoint Mapper), TCP/445(SMB) 등 Netlogon 관련 트래픽은 신뢰할 수 있는 내부 네트워크 대역에서만 접근 가능하도록 방화벽 정책을 강화해야 한다. DC를 신뢰되지 않는 네트워크에 직접 노출시키는 것은 본 취약점 외 다른 위협에도 시스템을 노출시킨다.
3.
탐지 및 모니터링 강화: 비정상 Netlogon/CLDAP 트래픽, User 속성이 비정상적으로 긴(100바이트 이상) CLDAP DC locator ping, 그리고 의심스러운 네트워크 활동 직후 발생하는 LSASS 크래시(예외 코드 0xc0000409, 결함 모듈 netlogon.DLL)를 모니터링해야 한다.

5. 결론

CVE-2026-41089는 Netlogon의 DC locator 응답 직렬화 과정에서 출력 버퍼 경계를 검증하지 않아 발생한 스택 기반 버퍼 오버플로우 취약점이다. 인증이 필요 없고, 단일 패킷으로 트리거되며, 대상이 Active Directory의 인증 핵심인 도메인 컨트롤러라는 점에서 원격 코드 실행 가능성은 낮지만 잠재적으로 매우 높은 위험도를 가질 수 있다.
당사의 솔루션인 PurpleHound는 실전 기반 시나리오를 재구성하여 기업이 보유한 보안 장비와 시스템이 실제 공격에 얼마나 효과적으로 대응 가능한지 검증할 수 있도록 지원한다.
본 보고서에서 분석한 취약점 뿐만 아니라 다른 유형의 취약점, 악성코드 활동, 파일 시스템 조작 등 다양한 위협 시나리오를 직접 실행해보며 보안 인프라의 실효성을 객관적으로 확인할 수 있다

6. 참고자료