Quick answers
- Is CVE-2026-3089 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-3089 being exploited in the wild.
- How severe is CVE-2026-3089?
- Medium severity, with a CVSS score of 4, published 10 March 2026.
- Which products and versions are affected?
- Actual Budget Sync Server <= 26.2.0; @actual-app/sync-server (npm) SEMVER:introduced=0,fixed=26.3.0.
- Is there a fix for CVE-2026-3089?
- Yes. @actual-app/sync-server (npm): upgrade to 26.3.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-3089 attacked?
- It is attacked over the network, in a hosted service.
- Am I affected by CVE-2026-3089?
- Check whether you run Actual Budget Sync Server or @actual-app/sync-server (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- @actual-app/sync-server (npm): upgrade to 26.3.0 or later
npm install @actual-app/sync-server@26.3.0
Technical details
Actual Sync Server contains a path traversal vulnerability (CWE-22) in the file upload endpoint POST /sync/upload-user-file. The vulnerability stems from insufficient validation of the user-supplied x-actual-file-id header, which allows attackers to inject traversal sequences (../) to escape the intended userFiles directory. An authenticated attacker can exploit this to write files to arbitrary locations on the filesystem outside the restricted directory. The vulnerability requires valid credentials to exploit (authentication is required) but no user interaction. The attack vector is network-accessible. A filesystem sandbox can mitigate the risk in unpatched versions. The vulnerability has been fixed in version 26.3.0 and later through proper file ID validation.
Affected products
- Actual Budget @actual-app/sync-server <= 26.2.0
Identifiers
- CVE-2026-3089
- GHSA-27vg-33gh-4hwg
Timeline
- 2026-03-07: disclosed
- 2026-03-10: patched: Fixed in version 26.3.0