{"id":"CVE-2026-46672","summary":"Actual: CSV Formula Injection in `@actual-app/cli` `--format csv` Output via Custom `escapeCsv` Helper","details":"Actual is a local-first personal finance app. Prior to 26.6.0, @actual-app/cli ships a hand-rolled CSV serializer in packages/cli/src/output.ts used whenever the global --format csv option is passed, whose escapeCsv helper only handles RFC 4180 delimiter, quote, and newline escaping and does not neutralize standard CSV formula-injection prefixes. Any CLI command that streams an object array containing user-controlled strings, including transactions list, accounts list, payees list, categories list, tags list, category-groups list, rules list, schedules list, and query, can emit cells that auto-evaluate when the resulting CSV is opened in Excel, LibreOffice Calc, or Google Sheets, enabling data exfiltration and arbitrary formula execution. This issue is fixed in version 26.6.0.","aliases":["GHSA-7gh7-258j-4mpq"],"modified":"2026-08-04T11:51:01.669446874Z","published":"2026-07-07T20:55:02.846Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-1236"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46672.json"},"references":[{"type":"WEB","url":"https://github.com/actualbudget/actual/releases/tag/v26.6.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/46xxx/CVE-2026-46672.json"},{"type":"ADVISORY","url":"https://github.com/actualbudget/actual/security/advisories/GHSA-7gh7-258j-4mpq"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46672"},{"type":"FIX","url":"https://github.com/actualbudget/actual/commit/068185751c03b42e726e3c60b718413d5f96c306"},{"type":"FIX","url":"https://github.com/actualbudget/actual/pull/7859"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/actualbudget/actual","events":[{"introduced":"0"},{"fixed":"3a730c160f8e6e4ea68f191d075a46bbbb7073d8"}],"database_specific":{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"0"},{"fixed":"26.6.0"}]}}],"versions":["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-46672.json"}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N"}]}