4.6 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Local (L)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): Low (L)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): Low (L)
- Integrity (I): Low (L)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Local (L)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): Low (L)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): Low (L)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): Low (L)
- Modified Availability (MA): None (N)
Activity log
- Created suggestion
Actual: CSV Formula Injection in `@actual-app/cli` `--format csv` Output via Custom `escapeCsv` Helper
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.
References
-
https://github.com/actualbudget/actual/security/advisories/GHSA-7gh7-258j-4mpq x_refsource_CONFIRM
-
https://github.com/actualbudget/actual/pull/7859 x_refsource_MISC
-
https://github.com/actualbudget/actual/releases/tag/v26.6.0 x_refsource_MISC
Affected products
- ==< 26.6.0
Matching in nixpkgs
pkgs.actual-server
Super fast privacy-focused app for managing your finances
Package maintainers
-
@oddlama oddlama <oddlama@oddlama.org>
-
@yash-garg Yash Garg <me@yashgarg.dev>
-
@PatrickDaG Patrick <patrick-nixos@failmail.dev>
-
@honnip Jung seungwoo <me@honnip.page>