{"id":"CVE-2026-3089","aliases":["GHSA-27vg-33gh-4hwg"],"url":"https://o3.security/vulnerability/CVE-2026-3089","summary":"Actual Sync Server 26.2.1 - Authenticated Path Traversal","details":"# Description\n\nActual 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`.\n\n## Mitigations\nThe vulnerability can be mitigated in prior versions by running the sync server in a filesystem sandbox.","published":"2026-03-09T14:08:55.998Z","modified":"2026-10-28T02:30:49.503265588Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"@actual-app/sync-server","fixedVersion":"26.3.0"}],"fix":{"url":"https://github.com/actualbudget/actual/pull/7067","label":"actualbudget/actual#7067"},"references":[{"type":"WEB","url":"https://registry.npmjs.org"},{"type":"ADVISORY","url":"https://fluidattacks.com/advisories/fugue"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/3xxx/CVE-2026-3089.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-3089"},{"type":"FIX","url":"https://github.com/actualbudget/actual/pull/7067"},{"type":"PACKAGE","url":"https://github.com/actualbudget/actual"},{"type":"WEB","url":"https://github.com/actualbudget/actual/security/advisories/GHSA-27vg-33gh-4hwg"},{"type":"WEB","url":"https://github.com/actualbudget/actual/commit/18072e1d8b5281db43ded8b21433ee177bae9dfa"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-28T02:30:49.503265588Z"}}