CVE-2026-50553

Note Mark: Path traversal via unsanitized book/note slug in migrate export (sibling of GHSA-g49p)

HIGH
8.6
CVSS Score
Published: September 4, 2026 at 05:25 PM UTC
Updated: September 9, 2026 at 09:27 PM UTC
1 product affected across 1 vendorNote Mark

Using note-mark by enchant97?

Get instant alerts when new vulnerabilities affect note-mark - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH8.6
Exploit prediction
EPSS 0.5%
SSVC
PoC

Description

Note Mark is an open-source note-taking application. Prior to version 0.19.5, Note Mark validates book and note slug values with the OpenAPI/huma tag pattern:"[a-z0-9-]+". huma compiles this with regexp.MustCompile(s.Pattern) and tests it with patternRe.MatchString(str), an UNANCHORED match. Because the pattern is not anchored (^...$), any string that merely CONTAINS one [a-z0-9-] substring passes validation. A slug such as ../../../../../../tmp/escape is accepted and stored verbatim. The data-export CLI commands (note-mark migrate export and note-mark migrate export-v1) join these unsanitized slugs straight into the output path with path.Join / filepath.Join, then os.MkdirAll the directory and os.Create the note file. path.Join resolves the ../ segments, so the note content file is written OUTSIDE the configured export directory. The export process commonly runs as root (default in Docker / bare-metal admin usage), so this is a root-privilege arbitrary directory create + file write. This issue has been patched in version 0.19.5.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v < 0.19.5
Affected range stops below 0.19.5, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

SSVC — Action Prioritization

SSVCPoCNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

8.6HIGHGitHub_M
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-20CWE-22

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card