p PatchFirst

PatchFirst · Latest vulnerabilities

@actual-app/sync-server vulnerabilities

Vulnerabilities published for @actual-app/sync-server in the last 30 days: 0. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Clear filters

Vulnerabilities: 8

  1. CVE-2026-57449

    High · CVSS 7.1EPSS 0.26%Public exploitFix available

    Actual Sync Server: CORS Proxy GitHub API Allowlist Prefix Bypass Leaks Private Repositories Through the Server GitHub Token

    Actual is a local-first personal finance tool. Prior to 26.7.0, Actual Sync Server's CORS proxy is intended to let authenticated users fetch resources only from repositories listed in the official plugin allowlist. When `ACTUAL_GITHUB_TOKEN` is configured, the proxy automatically attaches the server's GitHub token to GitHub requests. The GitHub API allowlist check uses a raw `startsWith()` prefix test for `/repos/{owner}/{repo}` without requiring a path boundary after the repository name. If an allowlisted public plugin repository is `https://github.com/acme/plugin`, the proxy also accepts GitHub API URLs. Those URLs are outside the allowlist

    • Update to 26.7.0
    Published Updated
  2. CVE-2026-49229

    High · CVSS 8.3EPSS 0.32%Fix available

    Actual: Disabled OpenID users keep access through existing session tokens

    Actual is a local-first personal finance app. Prior to 26.6.0, in OpenID multi-user mode, disabling a user only blocks future OpenID login for that identity, while existing Actual session tokens for the disabled user remain valid. The shared session validation path accepts any existing token row that has not expired without checking whether the associated user is still enabled, allowing a disabled user to continue calling authenticated server endpoints. This issue is fixed in version 26.6.0.

    • Update to 26.6.0
    Published Updated
  3. CVE-2026-46700

    Medium · CVSS 4.3EPSS 0.25%Fix available

    Actual: Missing authorization on GET /secret/:name allows non-admin OpenID users to enumerate admin-configured bank-sync secrets

    Actual is a local-first personal finance tool. Prior to 26.6.0, the GET /secret/:name endpoint in @actual-app/sync-server checks only that the caller has a valid session and does not verify the caller is an admin, while the sibling POST /secret/ handler enforces an admin check in OpenID mode. Any authenticated non-admin BASIC user in OpenID multi-user deployments can probe the secrets store and learn which admin-managed bank-sync integrations have been configured, including simplefin_accessKey, pluggyai_clientSecret, pluggyai_itemIds, and the gocardless secrets. This issue is fixed in version 26.6.0.

    • Update to 26.6.0
    Published Updated
  4. CVE-2026-33318

    High · CVSS 8.8EPSS 0.47%Fix available

    Actual has Privilege Escalation via 'change-password' Endpoint on OpenID-Migrated Servers

    Actual is a local-first personal finance tool. Prior to version 26.4.0, any authenticated user (including `BASIC` role) can escalate to `ADMIN` on servers migrated from password authentication to OpenID Connect. Three weaknesses combine: `POST /account/change-password` has no authorization check, allowing any session to overwrite the password hash; the inactive password `auth` row is never removed on migration; and the login endpoint accepts a client-supplied `loginMethod` that bypasses the server's active auth configuration. Together these allow an attacker to set a known password and authenticate as the anonymous admin account created durin

    • Update to 26.4.0
    Published Updated
  5. CVE-2026-3089

    Medium · CVSS 5.3EPSS 0.39%Fix available

    Actual Sync Server 26.2.1 - Authenticated Path Traversal

    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.This issue affects prior versions of Actual Sync Server 26.3.0.

    • Update to 26.3.0
    Published Updated
  6. CVE-2026-27638

    Medium · CVSS 5.7EPSS 0.34%Fix available

    ActualBudget missing authorization in sync endpoints allows cross-user budget file access in multi-user mode

    Actual is a local-first personal finance tool. Prior to version 26.2.1, in multi-user mode (OpenID), the sync API endpoints (`/sync/*`) don't verify that the authenticated user owns or has access to the file being operated on. Any authenticated user can read, modify, and overwrite any other user's budget files by providing their file ID. Version 26.2.1 patches the issue.

    • Update to 26.2.1
    Published Updated
  7. CVE-2026-27584

    Critical · CVSS 9.2EPSS 0.45%Fix available

    ActualBudget server is Missing Authentication for SimpleFIN and Pluggy AI bank sync endpoints

    Actual is a local-first personal finance tool. Prior to version 26.2.1, missing authentication middleware in the ActualBudget server component allows any unauthenticated user to query the SimpleFIN and Pluggy.ai integration endpoints and read sensitive bank account balance and transaction information. This vulnerability allows an unauthenticated attacker to read the bank account balance and transaction history of ActualBudget users. This vulnerability impacts all ActualBudget Server users with the SimpleFIN or Pluggy.ai integrations configured. The ActualBudget Server instance must be reachable over the network. Version 26.2.1 patches the iss

    • Update to 26.2.1
    Published Updated
  8. GHSA-xvp7-8vm8-xfxx

    Medium · CVSS 4.2Fix available

    Actual Sync-server Gocardless service is logging sensitive data including bearer tokens and account numbers

    ### Summary The GoCardless components in Actualbudget in are logging responses to STDOUT in a parsed format using `console.log`and `console.debug` (Which in this version of node is an alias for `console.log`). This is exposing sensitive information in log files including, but not limited to: - Gocardless bearer tokens. - Account IBAN and Bank Account numbers. - PII of the account holder. - Transaction details (Payee bank information, Recipient account numbers, Transaction IDs)... ### Details Whenever GoCardless responds to a request, the payload is printed to the debug log: https://github.com/actualbudget/actual/blob/36c40d90d2fe09eb1f25a

    • Update to 25.11.0
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →