Skip to content

Latest commit

 

History

History
179 lines (138 loc) · 10.2 KB

File metadata and controls

179 lines (138 loc) · 10.2 KB

Thunderbird mailbox: UNC 경로의 무단 다운로드와 Windows 자격 증명 노출 (CVE-2025-5986)

메타데이터

항목 내용
CVE ID CVE-2025-5986
영향 제품 Mozilla Thunderbird
영향 버전 Thunderbird 128.11.1 미만, 그리고 135.0 이상 139.0.2 미만
CVSS v3.1 6.5 (Medium) — AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
CWE CWE-451: User Interface Misrepresentation of Critical Information
공개일 2025-06-11
수정 Thunderbird 128.11.1, 139.0.2
WBO 분류 이유 취약점 자체는 Thunderbird 전반에 영향을 주지만, Windows에서 mailbox: UNC 경로가 SMB 접근과 자격 증명 노출로 이어질 수 있음

개요

CVE-2025-5986은 조작된 HTML 메일이 mailbox:/// 링크를 통해 Thunderbird의 로컬 메일 저장소 경로 처리로 들어가게 만들 수 있었던 문제다. 벤더 권고문에 따르면, 자동 저장을 껐더라도 사용자가 눈치채지 못하는 방식으로 PDF 다운로드가 시작될 수 있고, 대량 데이터로 디스크를 소진시키거나 Windows에서 SMB 경로를 통해 자격 증명을 노출하는 데 악용될 수 있었다.

핵심은 파일을 여는 UI 설정 하나가 아니다. mailbox:는 Thunderbird가 로컬 메일 저장소를 읽기 위해 쓰는 내부 프로토콜인데, 이 프로토콜이 UNC 경로를 수용하면 "로컬 프로필의 메일 읽기"와 "외부 파일 서버 접근"이라는 서로 다른 보안 경계를 넘게 된다. 정상 사용자는 LAN 공유 드라이브에 프로필이나 계정 저장소를 둘 수도 있으므로, 수정은 모든 UNC 경로를 무조건 막는 대신 프로필 내부 경로와 명시적 허용 목록을 보존하면서 외부 호스트·IP 형식 경로를 거부하도록 구성됐다.

사전 지식

mailbox:는 웹 URL이 아니라 로컬 메일 저장소를 여는 내부 URI다

Thunderbird의 메일 폴더와 메시지는 로컬 파일 기반 저장소에 놓일 수 있다. mailbox: URI는 이 저장소를 URI 형태로 가리켜 메일 프로토콜 계층이 메시지 스트림을 열 수 있게 한다. 따라서 mailbox:의 경로 부분은 단순한 화면용 식별자가 아니라, 최종적으로 운영체제 파일 경로로 해석될 수 있는 보안 민감 입력이다.

HTML 메일 안의 URI
        │
        ▼
Thunderbird URI / mailbox 프로토콜
        │  경로를 정규화하고 저장소 위치를 판정
        ▼
로컬 메일 파일 또는 네트워크 공유 경로
        │
        ▼
운영체제 파일·SMB 접근

여기서 URI scheme이 mailbox:라고 해서 항상 로컬 디스크만 접근하는 것은 아니다. Windows UNC 경로는 \\server\share\object처럼 원격 공유를 파일 경로로 표현한다. URI 파서가 이런 경로를 받아들이면, 파일 열기 요청이 네트워크 SMB 접근으로 바뀔 수 있다.

UNC 예외는 편의 기능이면서 신뢰 경계다

사용자 프로필을 사내 LAN 공유 드라이브에 두거나, 일부 계정의 메일 저장소를 프로필 바깥으로 지정하는 배포는 실제로 존재한다. 그래서 "UNC는 모두 위험하니 차단"하면 정상 환경을 망가뜨릴 수 있다. 반대로 메일 본문에서 유래한 입력이 임의 UNC 호스트를 지정할 수 있으면, 메일 읽기가 원격 네트워크 접근 권한을 갖게 된다.

안전한 정책은 경로의 출처와 대상을 함께 본다.

프로필 내부 경로                  → 허용
명시적으로 신뢰한 UNC 호스트       → 허용
외부 FQDN 또는 IP를 가리키는 UNC   → 차단

이 정책은 모든 공유 드라이브를 제거하지 않으면서, 외부 메일이 사용자의 승인 없이 새로운 원격 파일 서버를 선택하지 못하게 한다.

HTML 메일의 표시와 외부 콘텐츠 요청은 별개다

HTML 메일을 열면 사용자는 본문만 본다고 생각하기 쉽지만, 이미지·첨부·URI처럼 렌더링 과정에서 추가 리소스를 가리키는 요소도 처리될 수 있다. "자동 저장 꺼짐"은 사용자가 파일 저장 동작을 승인하는 UI 설정일 뿐, 모든 URI 해석과 외부 콘텐츠 로딩을 포괄하는 네트워크 방화벽은 아니다.

Mozilla는 이 CVE에서 HTML 보기만으로도 외부 콘텐츠가 로드될 수 있고, PDF 다운로드에는 사용자 상호작용이 필요하지만 시각적 난독화로 그 트리거를 숨길 수 있다고 설명한다. 즉 완전한 무인 코드 실행 문제가 아니라, UI 신호와 실제 리소스 접근이 어긋난 문제로 구분해야 한다.

취약점 분석

취약한 경로: 메일 속 URI가 네트워크 파일 접근으로 이어짐

Mozilla의 권고문은 조작된 HTML 메일의 mailbox:/// 링크가 사용자 확인 없이 PDF 다운로드를 시작시키거나, SMB 링크를 통해 Windows 자격 증명을 노출할 수 있다고 설명한다. 패치 전에는 mailbox: 경로가 프로필 바깥의 UNC 대상까지 도달할 수 있는 경우가 있었고, 이때 Thunderbird가 메일을 읽기 위해 연 경로 처리 흐름이 Windows의 원격 공유 접근으로 이어질 수 있었다.

패치 전

[조작된 HTML 메일]
        │
        ▼
mailbox:/// 로 시작하는 경로 해석
        │
        ├─ 로컬 프로필 안의 메일 파일이면 정상 동작
        └─ 검증이 충분하지 않은 UNC 대상이면 원격 공유 접근 가능
                         │
                         ├─ 예기치 않은 다운로드
                         ├─ 대량 데이터 요청에 따른 저장 공간 소진 가능성
                         └─ Windows SMB 인증 경로를 통한 자격 증명 노출 가능성

여기서 중요한 불변식은 메일 콘텐츠가 새 파일 서버를 선택하게 해서는 안 된다는 것이다. 프로필에 이미 설정된 공유 저장소는 사용자의 관리 범위에 있지만, HTML 메일의 링크가 가리키는 원격 호스트는 그렇지 않다. 두 종류의 경로를 같은 mailbox: 입력으로 처리하면, 신뢰한 저장소 예외가 외부 URI의 우회 통로가 된다.

첫 수정이 충분하지 않았던 이유

이 취약점과 연결된 이전 CVE-2025-3877은 한 차례 수정 후에도 다른 코드가 들어와 문제가 완전히 해결되지 않아 거부(rejected)됐다. NVD의 거부 사유는 최종 수정이 CVE-2025-5986으로 이뤄졌다고 명시한다. 최종 권고문이 Bug 1958580과 1968012를 함께 참조하는 이유도 여기에 있다.

이는 경로 검증에서 흔한 함정이다. "원격 호스트처럼 보이는 이름"만 막아도 IP 주소, 프로필 바깥 저장소, 예외 허용 목록처럼 다른 정규화·정책 분기가 남으면 같은 보안 경계가 다시 열릴 수 있다. 수정의 품질은 차단 조건 하나보다 허용 예외가 같은 불변식을 계속 지키는지로 판단해야 한다.

수정 방법

공개된 Thunderbird 소스의 nsMailboxProtocol::Initialize는 경로에서 역슬래시를 정규화한 뒤 UNC 형식을 감지한다. 이후 프로필 디렉터리 아래인지 먼저 확인하고, 프로필 밖 UNC 경로는 mail.allowed_unc_hosts의 명시적 허용 목록을 확인한다. 허용되지 않은 대상은 호스트 부분에 도메인 표기(.)나 IPv4/IPv6 표기(:)가 있으면 NS_ERROR_FILE_UNRECOGNIZED_PATH로 거부한다. 소스 주석도 LAN 공유 프로필을 허용할 필요와 임의 원격 서버 접근을 막아야 할 필요를 함께 명시한다.

패치 후

mailbox: URI의 경로
        │
        ▼
UNC 여부와 프로필 내부 여부 판정
        │
        ├─ 프로필 내부                     → 허용
        └─ 프로필 외부 UNC
                │
                ├─ mail.allowed_unc_hosts에 명시됨 → 허용
                └─ 그 외 FQDN/IP 호스트            → 거부

따라서 수정은 내부 URI가 임의 원격 파일 서버를 선택하는 것을 막되, 관리자가 명시적으로 승인한 공유 저장소와 로컬 프로필 사용은 유지한다. 사용자는 Thunderbird 128.11.1 또는 139.0.2 이상으로 업데이트해야 한다. 조직 환경에서는 외부 SMB 트래픽 제한, 메일 클라이언트의 HTML 외부 콘텐츠 정책, 프로필·메일 저장소의 UNC 사용 현황을 함께 점검하는 것이 좋다.

미해결/불확실 지점

  • Mozilla는 Windows 자격 증명 노출이 SMB 링크를 통해 가능하다고 밝혔지만, 이 권고문은 개별 Windows 인증 패키지, 네트워크 정책, 자격 증명 형식까지 공개하지 않는다. 따라서 이를 평문 암호 노출이나 모든 SMB 환경의 동일한 결과로 확대 해석해서는 안 된다.
  • 공개 소스에서 최종 차단 로직은 확인했지만, Bug 1958580과 1968012의 모든 중간 diff를 이 보고서에서 재구성하지는 않았다. 이전 수정의 불완전성은 NVD의 CVE 거부 이력에 근거한다.

더 살펴볼 점

내부 URI scheme이 외부 콘텐츠 문맥에서 해석될 때, 파일 접근 권한은 어떤 출처 추적을 가져야 할까?

공유 프로필 지원과 원격 UNC 차단을 함께 설계할 때 allowlist의 운영 비용은 어디까지 감수할 만할까?

참고 자료

참고 외 별도 확인 링크

본문 참고 자료로 충분했다.