{"id":"EUVD-2026-42104","revision":"a4e542fdfdcd4d02ba3aa9499a4ecf09","records":[{"revision":"a4e542fdfdcd4d02ba3aa9499a4ecf09","observedAt":"2026-11-05T10:43:33.343+00:00","statement":{"source":"euvd","id":"EUVD-2026-42104","aliases":["CVE-2026-50179","GHSA-xqjm-27pc-rvwm"],"title":"Actual is a local-first personal finance tool. Prior to 26.6.0, exportToCSV and exportQueryToCSV in packages/loot-core/src/server/transactions/export/export-to-csv.ts pass user-controlled Payee, Notes, Account, and Category strings to csv-s…","description":"Actual is a local-first personal finance tool. Prior to 26.6.0, exportToCSV and exportQueryToCSV in packages/loot-core/src/server/transactions/export/export-to-csv.ts pass user-controlled Payee, Notes, Account, and Category strings to csv-stringify with no cast callback and no formula-prefix neutralization. Strings that begin with equals sign, plus, minus, at sign, tab, or carriage return survive verbatim into the exported CSV, and when a recipient opens the file in Excel, LibreOffice Calc, or Google Sheets, the strings are interpreted as formulas, enabling transaction data exfiltration and attacker-chosen spreadsheet display values. This issue is fixed in version 26.6.0.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N","score":4.2,"severity":null}],"references":["https://github.com/actualbudget/actual/security/advisories/GHSA-xqjm-27pc-rvwm","https://github.com/actualbudget/actual/commit/068185751c03b42e726e3c60b718413d5f96c306","https://github.com/actualbudget/actual/releases/tag/v26.6.0"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-42104","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Jul 7, 2026, 8:58:16 PM","dateUpdated":"Jul 9, 2026, 2:42:17 PM"},"relatedAdvisories":[],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-42104","identifiers":["EUVD-2026-42104","CVE-2026-50179","GHSA-xqjm-27pc-rvwm"]},"retained":false,"historicalAffected":[]}],"coverage":[]}