GitHub Advisoryadvisory · npm
GHSA-27vg-33gh-4hwg Actual Sync Server has an Authenticated Path Traversal
MEDIUM
Official page ↗
- Aliases
- CVE-2026-3089
- Ecosystem
- npm
- Packages
- @actual-app/sync-server
- Severity
- Moderate
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
- Weaknesses
- CWE-22
- Reviewed
- 2026-03-10
Affected packages
• npm @actual-app/sync-server: < 26.3.0 → fixed in 26.3.0
Description
Description
Actual Sync Server allows authenticated users to upload files through `POST /sync/upload-user-file`. In versions prior to 26.3.0, improper validation of the user-controlled `x-actual-file-id` header means that traversal segments (`../`) can escape the intended directory and write files outside `userFiles`.
Mitigations
The vulnerability can be mitigated in prior versions by running the sync server in a filesystem sandbox.
Related
Alias · CVE (1)
- CVE-2026-3089 Actual Sync Server allows authenticated users to upload files through POST /sync/upload-user-file. vulnerability
Weakness · CWE (1)
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness
References
- https://github.com/actualbudget/actual/security/advisories/GHSA-27vg-33gh-4hwg web
- https://nvd.nist.gov/vuln/detail/CVE-2026-3089 advisory
- https://github.com/actualbudget/actual/pull/7067 web
- https://github.com/actualbudget/actual/commit/18072e1d8b5281db43ded8b21433ee177bae9dfa web
- https://fluidattacks.com/advisories/fugue web
- https://github.com/actualbudget/actual package