← Back to CVE Explorer

CVE-2026-65598

Full vulnerability record from the local CVENow database.

Description

n8n before 1.123.64, 2.29.8, and 2.30.1 contains a TOCTOU race condition in the Git node's clone operation that allows authenticated users to bypass path restrictions by swapping a directory for a symlink after the path is validated but before the clone runs. This lets an attacker plant a crafted repository in the community node directory, which n8n loads as a custom node on the next restart, executing arbitrary JavaScript on the server. Both self-hosted and cloud instances are affected.

Severity
HIGH
CVSS score
8.9 (v4.0)
Vulnerability status
Analyzed
Source identifier
Published
2026-07-22 12:18:20.037000
Last modified
2026-10-29 20:17:33.110000
View original CVE JSON
{
  "id": "CVE-2026-65598",
  "sourceIdentifier": "[email protected]",
  "published": "2026-07-22T12:18:20.037",
  "lastModified": "2026-10-29T20:17:33.110",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "n8n before 1.123.64, 2.29.8, and 2.30.1 contains a TOCTOU race condition in the Git node's clone operation that allows authenticated users to bypass path restrictions by swapping a directory for a symlink after the path is validated but before the clone runs. This lets an attacker plant a crafted repository in the community node directory, which n8n loads as a custom node on the next restart, executing arbitrary JavaScript on the server. Both self-hosted and cloud instances are affected."
    },
    {
      "lang": "es",
      "value": "n8n antes de 1.123.64, 2.29.8 y 2.30.1 contiene una condición de carrera TOCTOU en la operación de clonación del nodo Git que permite a usuarios autenticados eludir las restricciones de ruta intercambiando un directorio por un enlace simbólico después de que la ruta es validada pero antes de que se ejecute la clonación. Esto permite a un atacante colocar un repositorio manipulado en el directorio de nodos de la comunidad, que n8n carga como un nodo personalizado en el siguiente reinicio, ejecutando JavaScript arbitrario en el servidor. Tanto las instancias autoalojadas como las de la nube se ven afectadas."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "n8n-io",
          "product": "n8n",
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/n8n",
          "versions": [
            {
              "version": "0",
              "lessThan": "1.123.64",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "1.123.64",
              "versionType": "semver",
              "status": "unaffected"
            }
          ]
        },
        {
          "vendor": "n8n-io",
          "product": "n8n",
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/n8n",
          "versions": [
            {
              "version": "2.30.0",
              "lessThan": "2.30.1",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "2.30.1",
              "versionType": "semver",
              "status": "unaffected"
            }
          ]
        },
        {
          "vendor": "n8n-io",
          "product": "n8n",
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/n8n",
          "versions": [
            {
              "version": "2.0.0-rc.0",
              "lessThan": "2.29.8",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "2.29.8",
              "versionType": "semver",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
          "baseScore": 8.9,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "attackRequirements": "PRESENT",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "HIGH",
          "vulnIntegrityImpact": "HIGH",
          "vulnAvailabilityImpact": "HIGH",
          "subConfidentialityImpact": "HIGH",
          "subIntegrityImpact": "LOW",
          "subAvailabilityImpact": "LOW",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
          "baseScore": 7.5,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.6,
        "impactScore": 5.9
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-07-22T12:22:18.963626Z",
          "id": "CVE-2026-65598",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-367"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:community:node.js:*:*",
              "versionEndExcluding": "1.123.64",
              "matchCriteriaId": "843094AD-81C8-4961-A8A1-037468DEACA7"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*",
              "versionEndExcluding": "1.123.64",
              "matchCriteriaId": "E1626500-EC42-4BF5-8ECE-6E5E249D37F6"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:community:node.js:*:*",
              "versionStartIncluding": "2.0.0",
              "versionEndExcluding": "2.29.8",
              "matchCriteriaId": "3281592C-CB07-412C-9770-3521447ADEC1"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*",
              "versionStartIncluding": "2.0.0",
              "versionEndExcluding": "2.29.8",
              "matchCriteriaId": "E4A0C557-F57B-4931-A857-ACC4639C030D"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:n8n:n8n:2.30.0:*:*:*:community:node.js:*:*",
              "matchCriteriaId": "E125F7EF-F72F-427F-82DE-D6A505B1DF8F"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:n8n:n8n:2.30.0:*:*:*:enterprise:node.js:*:*",
              "matchCriteriaId": "3C2780A0-55EC-488D-9149-EE83BA246A38"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/n8n-io/n8n/security/advisories/GHSA-g3r5-9h93-4j2c",
      "source": "[email protected]",
      "tags": [
        "Mitigation",
        "Vendor Advisory"
      ]
    },
    {
      "url": "https://www.vulncheck.com/advisories/n8n-before-remote-code-execution-via-git-clone",
      "source": "[email protected]",
      "tags": [
        "Third Party Advisory"
      ]
    }
  ]
}