{"id":"CVE-2026-50553","summary":"Note Mark: Path traversal via unsanitized book/note slug in migrate export (sibling of GHSA-g49p)","details":"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.","aliases":["GHSA-rqrh-8wpv-x7hh","GO-2026-5949"],"modified":"2026-09-06T03:46:03.871191849Z","published":"2026-09-04T17:25:11.331Z","related":["openSUSE-SU-2026:21483-1"],"database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/50xxx/CVE-2026-50553.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-20","CWE-22"]},"references":[{"type":"WEB","url":"https://github.com/enchant97/note-mark/releases/tag/v0.19.5"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/50xxx/CVE-2026-50553.json"},{"type":"ADVISORY","url":"https://github.com/enchant97/note-mark/security/advisories/GHSA-rqrh-8wpv-x7hh"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50553"},{"type":"FIX","url":"https://github.com/enchant97/note-mark/commit/67b7de04308a858ef27ceff87b514067b6d667e5"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/enchant97/note-mark","events":[{"introduced":"0"},{"fixed":"67b7de04308a858ef27ceff87b514067b6d667e5"},{"fixed":"7cdfd90f58dc9d15b9ca050971fd02ec93edf8e5"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"0.19.5"}]}}],"versions":["v0.19.4","v0.19.3","v0.19.2","v0.19.1","v0.19.0","v0.18.0","v0.17.1","v0.17.0","v0.16.3","v0.16.2","v0.16.1","v0.16.0","v0.15.4","v0.15.3","v0.15.2","v0.15.1","v0.15.0","v0.14.1","v0.14.0","v0.13.1","v0.13.0","v0.12.2","v0.12.1","v0.12.0","v0.11.1","v0.11.0","v0.10.0","v0.9.0","v0.8.0","v0.7.0","v0.6.0","v0.6.0-alpha.4","v0.6.0-alpha.3","v0.6.0-alpha.2","v0.6.0-alpha"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-50553.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}