{"id":"CVE-2026-57449","summary":"Actual Sync Server: CORS Proxy GitHub API Allowlist Prefix Bypass Leaks Private Repositories Through the Server GitHub Token","details":"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 allowlisted repository but still pass because their API path starts with `/repos/acme/plugin`. The proxy then forwards the request with the server's `ACTUAL_GITHUB_TOKEN`, allowing any authenticated Actual user to read private GitHub resources reachable by that token. Version 26.7.0 fixes the issue.","aliases":["GHSA-m62c-5q34-f3cf"],"modified":"2026-09-27T03:30:26.252689967Z","published":"2026-09-25T22:10:39.706Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-200","CWE-284","CWE-863"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57449.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57449.json"},{"type":"ADVISORY","url":"https://github.com/actualbudget/actual/security/advisories/GHSA-m62c-5q34-f3cf"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57449"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/actualbudget/actual","events":[{"introduced":"0"},{"fixed":"111ea5f71ce97105376bd1472f2e1f3fa22139ad"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"26.7.0"}],"source":"AFFECTED_FIELD"}}],"versions":["v26.6.0","v26.4.0","v26.3.0","v26.2.0","v26.1.0","v25.12.0","v25.11.0","v25.10.0","v25.9.0","v25.8.0","v25.7.1","v25.7.0","v25.6.1","v25.6.0","v25.5.0","v25.4.0","v25.3.0","v25.2.0","v25.1.0","v24.12.0","v24.11.0","v24.10.0","v24.9.0","v24.8.0","v24.7.0","v24.6.0","v24.5.0","v24.4.0","v24.3.0","v24.2.0","v24.1.0","v23.12.0","v23.11.0","v23.10.0","v23.9.0","v23.8.1","v23.8.0","v23.7.2","v23.7.1","v23.7.0","v23.6.0","v23.5.0","v23.4.2","v23.4.1","v23.4.0","v23.3.2","v23.3.0","v23.2.9","v23.2.5","v23.1.12","v22.12.9"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-57449.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"}]}