Note Mark: Path traversal via unsanitized book/note slug in migrate export (sibling of GHSA-g49p)
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| enchant97 | note-mark | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Enchant97 | Note-mark |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-rqrh-8wpv-x7hh | Note Mark: Path traversal via unsanitized book/note slug in migrate export (sibling of GHSA-g49p) |
No CVSS v3.1
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.459% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Enchant97
Enchant97 note-mark |
|
| Vendors & Products |
Enchant97
Enchant97 note-mark |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Note Mark: Path traversal via unsanitized book/note slug in migrate export (sibling of GHSA-g49p) | |
| Weaknesses | CWE-20 CWE-22 |
|
| References |
| |
| Metrics |
cvssV4_0
|