Actual: CSV Formula Injection in Transaction Export via Imported Payee/Notes Fields
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| actualbudget | actual | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Actualbudget | Actual |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-xqjm-27pc-rvwm | @actual-app/web has CSV Formula Injection in Transaction Export via Imported Payee/Notes Fields |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.286% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Actualbudget
Actualbudget actual |
|
| Vendors & Products |
Actualbudget
Actualbudget actual |
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Actual: CSV Formula Injection in Transaction Export via Imported Payee/Notes Fields | |
| Weaknesses | CWE-1236 | |
| References |
| |
| Metrics |
cvssV3_1
|