PT-2026-51455 · Npm+2 · @Actual-App/Web+1

·

CVE-2026-50179

·

Published

2026-06-22

·

Updated

2026-07-09

CVSS v3.1

4.2

Medium

VectorAV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
Name of the Vulnerable Software and Affected Versions Actual versions prior to 26.6.0
Description Actual is a local-first personal finance tool that fails to neutralize formula-trigger characters when exporting data to CSV. The functions exportToCSV() and exportQueryToCSV() in packages/loot-core/src/server/transactions/export/export-to-csv.ts pass user-controlled strings from the Payee, Notes, Account, and Category variables to the csv-stringify library without a cast callback. Consequently, strings starting with =, +, -, @, tab, or carriage return are written verbatim into the CSV file.
When a user opens the exported file in spreadsheet software such as Microsoft Excel, LibreOffice Calc, or Google Sheets, these strings are interpreted as formulas. This can lead to the exfiltration of sensitive transaction data (such as amounts, account names, and balances) to an attacker-controlled URL via functions like =HYPERLINK, =WEBSERVICE, or =IMPORTXML. Additionally, it allows attackers to manipulate displayed values in the spreadsheet or potentially achieve remote code execution on older versions of Excel through Dynamic Data Exchange (DDE).
Recommendations Update Actual to version 26.6.0. As a temporary mitigation, avoid importing files from untrusted sources and restrict the use of the CSV export feature until the update is applied.

Exploit

Fix

RCE

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-50179
GHSA-XQJM-27PC-RVWM

Affected Products

@Actual-App/Web
Actual