🔍 CVE-2026-46671

4.4
CVSS Score
MEDIUM
2026-07-20
2026-10-24 20:10
✅ 완료

🇰🇷 한글 설명

Rust로 구현된 Microsoft OneNote 파일 파서 onenote_parser의 1.1.1 이전 버전에는 악의적으로 조작된 .onetoc2 목차 파일로 인해 노트북 디렉터리 외부의 임의 파일을 열 수 있는 경로 탐색 취약점이 있습니다. 파서가 .onetoc2 내부 항목 이름을 검증 없이 노트북 기본 디렉터리와 결합하기 때문이며, 직접적인 내용 유출은 어렵지만 파일 존재 여부 탐지와 서비스 거부는 가능합니다.

💡 쉬운 설명

신뢰할 수 없는 출처에서 받은 OneNote 목차 파일을 이 도구로 열면, 컴퓨터의 다른 파일 위치를 엿보거나 프로그램을 멈추게 할 수 있습니다. 직접 만든 노트북만 사용한다면 위험은 크지 않습니다.

🇺🇸 원문 (English)

Rust OneNote File Parser is a parser for Microsoft OneNote files implemented in Rust. Prior to version 1.1.1, a maliciously crafted `.onetoc2` table-of-contents file can cause `Parser::parse_notebook` to open arbitrary files on the host filesystem outside the notebook's directory. The parser reads entry names listed inside the `.onetoc2` and joins them against the notebook's base directory without validating that they are relative paths confined to that directory. The parser will bail out when the target file fails to parse as a OneNote section, so direct content exfiltration through the parser's return value is not practical, though file-existence probing and denial-of-service via large or special files remain possible. Anyone using `onenote_parser` to parse .onetoc2 files received from untrusted sources is affected. Users who only ever parse their own notebooks are not at meaningful risk. The issue is fixed in onenote_parser 1.1.1. The fix rejects absolute paths, parent-directory components, and other invalid path characters in entry names, and additionally canonicalises the resolved path to confirm it stays inside the notebook's base directory. For users who cannot upgrade to 1.1.1, only call `Parser::parse_notebook` on `.onetoc2` files from trusted sources. Alternatively, use `Parser::parse_section` / `Parser::parse_section_buffer` on individual .one files, which do not perform the directory walk.

📍 영향받는 시스템

onenote_parser 1.1.1 미만 버전을 사용하여 신뢰되지 않은 .onetoc2 파일을 파싱하는 모든 시스템

⚔️ 공격 벡터

공격자가 조작된 .onetoc2 파일을 제공하고 사용자가 Parser::parse_notebook으로 이를 파싱하면 기본 디렉터리 밖의 파일 경로에 접근

🛡️ 대응 방법

onenote_parser를 1.1.1 이상으로 업그레이드하거나, 신뢰된 .onetoc2 파일만 parse_notebook으로 처리하고 개별 .one 파일은 parse_section을 사용

🔧 검증 코드

출력된 버전이 1.1.1 이상이면 수정된 버전이며, 1.1.1 미만이거나 결과가 없으면 프로젝트 의존성을 확인해 업그레이드가 필요합니다.

Shell / Script
cargo tree -i onenote_parser 2>/dev/null | head -n 1

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L

💻 영향받는 소프트웨어

Magento Open Source