CVE-2026-46671: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in msiemens onenote.rs
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.
AI Analysis
Technical Summary
CVE-2026-46671 is a CWE-22 path traversal vulnerability in the Rust OneNote File Parser (onenote.rs) affecting versions prior to 1.1.1. The parse_notebook method processes .onetoc2 table-of-contents files by joining entry names to the notebook base directory without validating that these paths remain within the directory. This allows an attacker to craft a .onetoc2 file that causes the parser to open arbitrary files on the host filesystem outside the notebook directory. Although direct content exfiltration via the parser's output is not practical, the vulnerability enables file existence probing and denial-of-service attacks via large or special files. The vulnerability is fixed in version 1.1.1 by rejecting absolute paths, parent-directory components, and invalid characters, and by canonicalizing paths to confirm confinement within the notebook directory. Users unable to upgrade should only parse .onetoc2 files from trusted sources or use alternative parsing methods that do not perform directory walks.
Potential Impact
An attacker who can supply a malicious .onetoc2 file to the parser can cause it to open arbitrary files outside the intended notebook directory. This can lead to file existence probing and denial-of-service conditions due to processing large or special files. However, the parser will abort if the file does not parse as a OneNote section, limiting direct content exfiltration through the parser's return value. The vulnerability requires local access to supply crafted files and user interaction to trigger parsing. The CVSS score is 4.4 (medium severity) reflecting limited confidentiality impact and local attack vector.
Mitigation Recommendations
A fix is available in onenote_parser version 1.1.1, which validates and canonicalizes paths to prevent traversal outside the notebook directory. Users should upgrade to version 1.1.1 or later. For those unable to upgrade, only parse .onetoc2 files from trusted sources. Alternatively, use Parser::parse_section or Parser::parse_section_buffer on individual .one files, which do not perform directory traversal. There is no vendor advisory explicitly stating no action required; therefore, these mitigations are recommended.
CVE-2026-46671: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in msiemens onenote.rs
Description
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.
CVSS v3.1
Score 4.4medium
Affected software
pkg:cargo/github/msiemens/onenote.rsRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-46671 is a CWE-22 path traversal vulnerability in the Rust OneNote File Parser (onenote.rs) affecting versions prior to 1.1.1. The parse_notebook method processes .onetoc2 table-of-contents files by joining entry names to the notebook base directory without validating that these paths remain within the directory. This allows an attacker to craft a .onetoc2 file that causes the parser to open arbitrary files on the host filesystem outside the notebook directory. Although direct content exfiltration via the parser's output is not practical, the vulnerability enables file existence probing and denial-of-service attacks via large or special files. The vulnerability is fixed in version 1.1.1 by rejecting absolute paths, parent-directory components, and invalid characters, and by canonicalizing paths to confirm confinement within the notebook directory. Users unable to upgrade should only parse .onetoc2 files from trusted sources or use alternative parsing methods that do not perform directory walks.
Potential Impact
An attacker who can supply a malicious .onetoc2 file to the parser can cause it to open arbitrary files outside the intended notebook directory. This can lead to file existence probing and denial-of-service conditions due to processing large or special files. However, the parser will abort if the file does not parse as a OneNote section, limiting direct content exfiltration through the parser's return value. The vulnerability requires local access to supply crafted files and user interaction to trigger parsing. The CVSS score is 4.4 (medium severity) reflecting limited confidentiality impact and local attack vector.
Mitigation Recommendations
A fix is available in onenote_parser version 1.1.1, which validates and canonicalizes paths to prevent traversal outside the notebook directory. Users should upgrade to version 1.1.1 or later. For those unable to upgrade, only parse .onetoc2 files from trusted sources. Alternatively, use Parser::parse_section or Parser::parse_section_buffer on individual .one files, which do not perform directory traversal. There is no vendor advisory explicitly stating no action required; therefore, these mitigations are recommended.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-05-15T21:46:51.547Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a5e48fa2a4a8d5989549ea0
Added to database: 07/20/2026, 16:12:42 UTC
Last enriched: 07/20/2026, 16:27:15 UTC
Last updated: 07/21/2026, 05:55:07 UTC
Views: 17
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.