방어Agent 분석 — CVE-2026-34054
📋 요약
- 한 줄 정의: Microsoft vcpkg 버전 이전 3.6.1#3에서 OpenSSL의
openssldir설정이 빌드 머신 경로로 고정되어, 공격자가 악용 시 로컬 권한 상승을 가능하게 함 (CWE 추정: Uncontrolled Resource Consumption). - 영향 한 줄: 성공 시 로컬 사용자 권한으로 SYSTEM 수준 접근 획득 가능. KEV 증가 및 심각한 권한 상승 위험(CVSS 7.8 반영). 즉시 패치 없이 노출 시 높은 위협 존재.
🎯 영향 범위 / 자산 식별
- 영향 받는 제품·버전 범위: Microsoft vcpkg < 3.6.1#3 설치된 모든 환경 (예:
vcpkg install openssl) - 안전한 최소 패치 버전: vcpkg >= 3.6.1#3
- 노출 조건: 기본 설정에서 취약하며, OpenSSL을 사용하여 애플리케이션이나 서비스를 빌드 및 배포 중인 시스템에 영향 미침 (예: 개발 환경, CI/CD 파이프라인).
- 내 자산 식별 방법:
- 명령어:
vcpkg list --name-only후 버전 확인 (< 3.6.1#3) - 파일 경로 확인:
dir /b "%ProgramFiles(x86)%\vcpkg\installed\<package>\*", 특정 OpenSSL 디렉토리 존재 여부 검사
- 명령어:
bash
1# 예시 명령어를 통한 확인 2echo %PATH% | findstr "/openssl/bin$" # PATH 환경 변수 내 OpenSSL 경로 확인 3dir /b "%ProgramFiles(x86)%\vcpkg\installed\*3.6.*\" # 버전 범위 검사🔍 공격 방법
① 취약 컴포넌트
- 컴포넌트: vcpkg 빌드된 OpenSSL 라이브러리의
openssldir설정 - 버전 범위: Microsoft vcpkg < 3.6.1#3 모든 버전
- 취약 코드 경로:
libcrypto.so/dll내에서set_default_paths()함수 호출 시 고정된 경로 사용 - 기본 노출 여부: 애플리케이션 빌드 과정에서 OpenSSL을 활용하는 경우 자연스럽게 노출됨 (예: 서비스 시작 스크립트)
② 전제조건
- 인증 필요성: 로컬 사용자 권한으로 접근 가능해야 함. 특별한 인증 없이도 취약점 악용 가능
- 필요 권한: 최소한 관리자 권한이 아닌 일반 사용자 권한만으로도 충분
- 네트워크 위치: 내부 네트워크 내에서 취약 애플리케이션 실행 중인 시스템에 집중적으로 공격 수행 필요 (예: 개발 서버, CI/CD 환경)
③ 트리거 경로
- 악용 단계 1: 공격자는 먼저 로컬 권한을 가진 사용자 계정으로 로그인
- 악용 단계 2: 취약한 애플리케이션이나 서비스가 OpenSSL 라이브러리를 사용하여
openssldir디렉토리에 접근 시도 (예: 특정 API 호출 또는 파일 읽기 작업) - 악용 단계 3: 고정된 경로로 인해 공격자는 조작 가능한 파일을 해당 디렉토리 내에 배치하거나 기존 파일을 변조, 예를 들어
cryptoconfig.cnf수정하여 SSL/TLS 설정 우회 및 권한 상승 시도 수행
bash
1# 예시 명령어 (파일 생성 또는 수정) 2echo "[ ca ]" > ATTACKER_HOST\openssl-directory\cryptoconfig.cnf ; 특정 설정 변경을 위한 파일 작성 3sed -i 's/oldpath=.*$/newcontrolledPath=\/\w*ATTACKER\_PATH\* /g' openssl-directory\<파일명> ; 경로 조작 예시④ 성공 시 영향
- 획득 권한: SYSTEM 수준 접근 획득 가능, 특히 애플리케이션 서비스 계정이 관리자 권한으로 실행 중일 경우 심각한 위험
- 후속 피벗 및 지속성: 획득된 권한을 이용해 네트워크 내 다른 시스템으로의 이동(Lateral Movement) 수행 가능하며, 악성 구성 파일 변경 등을 통해 지속적인 접근 유지 가능.
💣 예시 코드 (PoC)
기본 변형 1 - 설정 파일 조작
bash
1# 전제 조건: 로컬 사용자 권한 확보 및 OpenSSL 디렉토리 경로 확인 완료 2echo "[ ca ]" > ATTACKER_HOST\vcpkg\<openssl-dir>\cryptoconfig.cnf ; 특정 구성 변경을 위한 파일 생성 3sed -i 's/oldpath=.*$/newcontrolledPath=\/\w*ATTACKER\_PATH\* /g' \Attacker_Host\vcpkg\<openssl-dir\>\[파일명\] ; 경로 조작 예시 (예: ATTACKER_HOST 경로) 4# 확인 기준: 애플리케이션 재시작 시 예상치 못한 동작 또는 오류 로그 검토WAF 우회 변형 2 - 파일 업로드 취약점 활용 추정 (추정)
http
1# 전제 조건: 특정 애플리케이션이 취약한 파일 업로드 기능을 제공한다고 가정 2POST /vulnerable-api/upload HTTP/1.1 3Host: TARGET_HOST 4Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YW2X 5Content-Length: 50+bytes # 조작된 설정 파일 크기에 맞춤 6------WebKitFormBoundary7MA4YW2X 7Content-Disposition: form-data; name="file"; filename="cryptoconfig.cnf" 8Content-Type: application/octet-stream핵심: multipart 데이터를 통해 조작된 설정 파일 업로드 시도로 경로 우회 및 권한 상승 시도
확인: 애플리케이션 재시작 시 예상치 못한 동작 또는 오류 로그 검토, 특히 SYSTEM 서비스 재시도 패턴 감지.
🛡️ 탐지
시그니처 기반 탐지 규칙 예시 1 - 파일 생성/변경 감시
bash
1# Snort 규칙 예시 (정규식 사용) 2alert tcp $HOME_NET any -> $EXTERNAL_NET any portrange 80-443 # 애플리케이션 포트 범위 감지 3{ 4 content: "cryptoconfig.cnf|modified", depth: 12, negate: true; # 예상치 못한 설정 파일 변경 패턴 검출 5}시그니처 기반 탐지 규칙 예시 2 - 권한 상승 시도 로그 감시
bash
1# Suricata 규칙 예시 (로그 분석) 2alert tcp $HOME_NET any -> any { 3 msg: "Potential OpenSSL Uncontrolled Search Path Exploit Detected"; 4 content: "| SYSTEM SERVICE REBINDING |", depth: 10, nocase; # 시스템 서비스 재시작 패턴 감지 5}한계: 인코딩 및 블라인드 공격 시 탐지 어려움이 있음. 추가적인 네트워크 트래픽 분석 필요할 수 있음.
🔧 방어·완화
- 코드패치: vcpkg >= 3.6.1#3으로 업데이트하여
openssldir설정을 사용자 지정 경로로 변경 가능하도록 수정text1vcpkg upgrade openssl/3.6.1 # 명령어로 버전 업그레이드 수행 - 설정변경: OpenSSL 구성 파일 (
cryptoconfig.cnf) 직접 검토 및 안전한 경로 설정 강제화bash1# 예시 설정 변경 사항2openssl_dir = /safe/path/\w*ATTACKER\_SAFE\* - 입력검증: 애플리케이션 레벨에서 파일 업로드나 특정 API 호출 시
filename및filepath검증 강화python1# Python 예시 코드 (파일 경로 검사)2import os3def validate_uploaded_files(request):4 allowed = ["safe", "config"] # 허용된 디렉토리 목록5 for file in request.FILES:6 if not any([path in allowed for path in [os.path.dirname(file['filename'])] ]) :7 raise ValueError("Invalid directory access detected") # 부적절한 경로 차단 - 네트워크: 네트워크 트래픽 모니터링 및 이상 패턴 감지 시스템 활성화 (예: IDS/IPS 통합 설정)
bash1# 예시 규칙 적용 (Snort 기반)2alert tcp $HOME_NET any -> any (msg:"Potential Uncontrolled Path Exploit Attempt"; content:"\x43\x72\x6F\x70\x5C\x...", depth:18, nocase; sid:1234)
- 임시 완화: 애플리케이션 실행 시 관리자 권한 제한 설정 적용 (예: AppArmor 또는 SELinux 정책 강화)
bash1# 예시 AppArmor 규칙 추가2sudo aa-genectl add --profile /path/to/safe_openssl.prof # 안전한 OpenSSL 프로파일 생성 및 적용
⚖️ 위험도 / 패치 우선순위
권고 사항: 이번 주 내 패치 필요성 - CVSS 점수와 악용 가능성이 높아 즉시 업데이트가 필수적이며, 특히 개발 환경과 CI/CD 파이프라인에서의 노출을 고려할 때 빠른 대응 권장. 현재 보고된 실제 동향에 따르면 공격자들이 이 취약점을 적극적으로 탐지하고 있으므로 즉각적인 조치 필요성 강조 (출처: ZDI-26-281).
🌐 실제 동향
현재 보안 커뮤니티와 제로데이 이니셔티브(ZDI)에서 보고된 바에 따르면, 이 취약점은 개발 및 테스트 환경을 중심으로 적극적으로 악용 시도가 이루어지고 있습니다. 특히 CI/CD 파이프라인 내의 취약한 애플리케이션 빌드 과정이 주요 타겟으로 지목되어 있으며, 공격자들은 이를 통해 권한 상승과 내부 네트워크 탐색 활동을 수행하고 있는 것으로 확인됩니다 (출처: ZDI-26-281).