Skip to content
OpenAdvisories
High · 8.6 CVE-2026-50553 EUVD-2026-71618GHSA-rqrh-8wpv-x7hhGO-2026-5949

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

Published Sep 4, 2026 · Updated Sep 4, 2026 · Assigned by GitHub_M

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 products

VendorProductAffectedFixed
enchant97 note-mark < 0.19.5 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
openSUSE Leap 16.0 govulncheck-vulndb 0.0.20260723T184607-160000.1.1 openSUSE-SU-2026:21483-1

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/enchant97/note-mark/backend < 0.0.0-20260601210719-67b7de04308a 0.0.0-20260601210719-67b7de04308a GHSA-rqrh-8wpv-x7hh

Advisories 1

References