Skip to content
Heist/ feed
Back to feed
Medium

actual Allows Electron to Run As Node

Type: advisorySources: OSV

Actual is an open-source personal finance application. In the macOS desktop application version 25.x (built on Electron 39.2.7), the ELECTRON_RUN_AS_NODE fuse is not disabled, allowing an attacker who can place a file on disk or control command-line arguments to invoke the signed Actual.app binary with the ELECTRON_RUN_AS_NODE=1 environment variable set. This converts the application into a Node.js REPL capable of executing arbitrary code that inherits the application's entitlements and code signature, bypassing macOS Gatekeeper review. Version 26.5.0 patches the issue.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-42890
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 22:24 UTC · Revision 1

Source evidence

actual Allows Electron to Run As Node

core-osv · Original source

Published 12 Jun 2026, 18:58 UTC

Actual is an open-source personal finance application. In the macOS desktop application version 25.x (built on Electron 39.2.7), the ELECTRON_RUN_AS_NODE fuse is not disabled, allowing an attacker who can place a file on disk or control command-line arguments to invoke the signed Actual.app binary with the ELECTRON_RUN_AS_NODE=1 environment variable set. This converts the application into a Node.js REPL capable of executing arbitrary code that inherits the application's entitlements and code signature, bypassing macOS Gatekeeper review. Version 26.5.0 patches the issue.

osv:CVE-2026-42890
Complete source record
{
  "id": "436f3f858f3f8a3fd6a4334d5b7d1415a9ee6ac2d4ab0a9799a020e8aed04920",
  "url": "https://osv.dev/vulnerability/CVE-2026-42890",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "actual Allows Electron to Run As Node",
    "summary": "Actual is an open-source personal finance application. In the macOS desktop application version 25.x (built on Electron 39.2.7), the ELECTRON_RUN_AS_NODE fuse is not disabled, allowing an attacker who can place a file on disk or control command-line arguments to invoke the signed Actual.app binary with the ELECTRON_RUN_AS_NODE=1 environment variable set. This converts the application into a Node.js REPL capable of executing arbitrary code that inherits the application's entitlements and code signature, bypassing macOS Gatekeeper review. Version 26.5.0 patches the issue.",
    "evidence": "osv:CVE-2026-42890",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-42890",
      "aliases": [
        "CVE-2026-42890",
        "GHSA-7rvm-xjpp-63r9"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/actualbudget/actual",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "4c62e2a75d48deb06d45e7ed89a2b9ddfd187e3d"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "26.5.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  }
                ]
              }
            }
          ],
          "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-42890.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:40.073588863Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42890.json",
        "https://github.com/actualbudget/actual/security/advisories/GHSA-7rvm-xjpp-63r9",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-42890",
        "https://actualbudget.org/blog/release-26.5.0"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-94"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42890.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-42890",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 507583,
  "published_at": "2026-06-12T18:58:42.239+00:00"
}