CVE-2026-44522 Details
Description
Note Mark is an open-source note-taking application. From 0.13.0 to before 0.19.4, the Note Mark application allows authenticated users to upload assets to notes via POST /api/notes/{noteID}/assets, where the asset filename is provided through the X-Name HTTP request header. This value is stored directly in the database without any sanitization or validation - no path separator filtering, no directory traversal sequence rejection, and no use of filepath.Base() to strip directory components. The unsanitized name is persisted as-is in the note_assets table (Name column, varchar(80)). When an administrator subsequently runs the data export CLI commands (note-mark migrate export-v1 or note-mark migrate export), the stored asset name is passed directly into filepath.Join() and path.Join() calls as part of the output file path argument to os.Create(). Since Go's filepath.Join() resolves ../ sequences during path normalization, an attacker-controlled asset name containing directory traversal sequences causes the export process to write files to arbitrary locations on the filesystem, completely outside the intended export directory. This vulnerability is fixed in 0.19.4.
A vulnerability in Note Mark versions 0.13.0 prior to 0.19.4 allows authenticated users to upload assets to notes without proper validation. The asset filename, provided through the X-Name HTTP header, is stored directly in the database, leaving it vulnerable to directory traversal attacks. When an administrator exports data using the CLI, the unsanitized asset name is used to create file paths, exploiting Go's path normalization to write files to arbitrary locations on the filesystem. This issue is particularly severe as the export process often runs with root privileges, enabling overwriting of critical system binaries like /bin/bash, which can then be exploited for remote code execution.
The vulnerability has been fixed in Note Mark version 0.19.4. Users should update to this version. For versions prior to 0.19.4, it is recommended to apply input validation on the X-Name header to reject asset names containing path separators or directory traversal sequences. Additionally, the export process should sanitize asset names by applying filepath.Base() before using them in file path constructions.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed May 14, 2026CISA-ADP
Assessed May 14, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/enchant97/note-mark/security/advisories/GHSA-g49p-4qxj-88v3 | CISA-ADP | AdvisoryExploitRemedyVendor |
| https://github.com/enchant97/note-mark/security/advisories/GHSA-g49p-4qxj-88v3 | [email protected] | AdvisoryExploitRemedyVendor |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-20 | Improper Input Validation | [email protected] |
| CWE-22 | Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| Note Mark | All versions |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| May 14, 2026 | CVE Modified | CISA-ADP |
| May 14, 2026 | New CVE Received | [email protected] |
Volerion