CVE-2026-59259 (GCVE-0-2026-59259)
Vulnerability from cvelistv5
Published
2026-07-15 11:25
Modified
2026-10-29 21:16
CWE
  • CWE-639 - Authorization Bypass Through User-Controlled Key
Summary
n8n before versions 1.123.61, 2.27.4, and 2.28.1 contains a permission bypass vulnerability in external secrets handling caused by a mismatch between the static validation check and the runtime expression engine. An authenticated user with credential create or update permissions but without the externalSecret:list scope can embed external secret references into credentials in forms the static validation does not detect; these references resolve at workflow execution time, exposing secret values the user is not authorized to access. This issue only affects instances where an external secrets provider is configured and Advanced Permissions are in use.
Impacted products
Vendor Product Version
n8n n8n Version: 0   ≤
Create a notification for this product.
   n8n n8n Version: 2.28.0   ≤
Create a notification for this product.
   n8n n8n Version: 2.0.0-rc.0   ≤
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-59259",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-07-15T18:47:30.436147Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-07-15T18:47:38.895Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/n8n",
          "product": "n8n",
          "vendor": "n8n",
          "versions": [
            {
              "lessThan": "1.123.61",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "1.123.61",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/n8n",
          "product": "n8n",
          "vendor": "n8n",
          "versions": [
            {
              "lessThan": "2.28.1",
              "status": "affected",
              "version": "2.28.0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "2.28.1",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/n8n",
          "product": "n8n",
          "vendor": "n8n",
          "versions": [
            {
              "lessThan": "2.27.4",
              "status": "affected",
              "version": "2.0.0-rc.0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "2.27.4",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*",
                  "versionEndExcluding": "1.123.61",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*",
                  "versionEndExcluding": "2.28.1",
                  "versionStartIncluding": "2.28.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*",
                  "versionEndExcluding": "2.27.4",
                  "versionStartIncluding": "2.0.0-rc.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "reporter",
          "value": "YLChen-007"
        }
      ],
      "datePublic": "2026-06-24T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "n8n before versions 1.123.61, 2.27.4, and 2.28.1 contains a permission bypass vulnerability in external secrets handling caused by a mismatch between the static validation check and the runtime expression engine. An authenticated user with credential create or update permissions but without the externalSecret:list scope can embed external secret references into credentials in forms the static validation does not detect; these references resolve at workflow execution time, exposing secret values the user is not authorized to access. This issue only affects instances where an external secrets provider is configured and Advanced Permissions are in use."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 6,
            "baseSeverity": "MEDIUM",
            "privilegesRequired": "LOW",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "NONE"
          },
          "format": "CVSS"
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-639",
              "description": "Authorization Bypass Through User-Controlled Key",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-29T21:16:04.961Z",
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck"
      },
      "references": [
        {
          "name": "GitHub Security Advisory (GHSA-jp7m-xcgx-57qm)",
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/n8n-io/n8n/security/advisories/GHSA-jp7m-xcgx-57qm"
        },
        {
          "name": "VulnCheck Advisory: n8n - Permission Bypass via Expression Parser Mismatch in External Secrets",
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.vulncheck.com/advisories/n8n-permission-bypass-via-expression-parser-mismatch-in-external-secrets"
        }
      ],
      "title": "n8n - Permission Bypass via Expression Parser Mismatch in External Secrets",
      "x_generator": {
        "engine": "vulncheck-endgame"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "cveId": "CVE-2026-59259",
    "datePublished": "2026-07-15T11:25:35.530Z",
    "dateReserved": "2026-07-04T12:17:14.302Z",
    "dateUpdated": "2026-10-29T21:16:04.961Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-59259\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-07-15T18:47:30.436147Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-07-15T18:47:35.380Z\"}}], \"cna\": {\"title\": \"n8n - Permission Bypass via Expression Parser Mismatch in External Secrets\", \"credits\": [{\"lang\": \"en\", \"type\": \"reporter\", \"value\": \"YLChen-007\"}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV4_0\": {\"version\": \"4.0\", \"baseScore\": 6, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"PRESENT\", \"privilegesRequired\": \"LOW\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"NONE\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"NONE\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"n8n\", \"product\": \"n8n\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"1.123.61\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"1.123.61\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:npm/n8n\", \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"n8n\", \"product\": \"n8n\", \"versions\": [{\"status\": \"affected\", \"version\": \"2.28.0\", \"lessThan\": \"2.28.1\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"2.28.1\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:npm/n8n\", \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"n8n\", \"product\": \"n8n\", \"versions\": [{\"status\": \"affected\", \"version\": \"2.0.0-rc.0\", \"lessThan\": \"2.27.4\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"2.27.4\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:npm/n8n\", \"defaultStatus\": \"unaffected\"}], \"datePublic\": \"2026-06-24T00:00:00.000Z\", \"references\": [{\"url\": \"https://github.com/n8n-io/n8n/security/advisories/GHSA-jp7m-xcgx-57qm\", \"name\": \"GitHub Security Advisory (GHSA-jp7m-xcgx-57qm)\", \"tags\": [\"vendor-advisory\"]}, {\"url\": \"https://www.vulncheck.com/advisories/n8n-permission-bypass-via-expression-parser-mismatch-in-external-secrets\", \"name\": \"VulnCheck Advisory: n8n - Permission Bypass via Expression Parser Mismatch in External Secrets\", \"tags\": [\"third-party-advisory\"]}], \"x_generator\": {\"engine\": \"vulncheck-endgame\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"n8n before versions 1.123.61, 2.27.4, and 2.28.1 contains a permission bypass vulnerability in external secrets handling caused by a mismatch between the static validation check and the runtime expression engine. An authenticated user with credential create or update permissions but without the externalSecret:list scope can embed external secret references into credentials in forms the static validation does not detect; these references resolve at workflow execution time, exposing secret values the user is not authorized to access. This issue only affects instances where an external secrets provider is configured and Advanced Permissions are in use.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-639\", \"description\": \"Authorization Bypass Through User-Controlled Key\"}]}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"1.123.61\"}, {\"criteria\": \"cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"2.28.1\", \"versionStartIncluding\": \"2.28.0\"}, {\"criteria\": \"cpe:2.3:a:n8n:n8n:*:*:*:*:enterprise:node.js:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"2.27.4\", \"versionStartIncluding\": \"2.0.0-rc.0\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"83251b91-4cc7-4094-a5c7-464a1b83ea10\", \"shortName\": \"VulnCheck\", \"dateUpdated\": \"2026-10-29T21:16:04.961Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-59259\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-10-29T21:16:04.961Z\", \"dateReserved\": \"2026-07-04T12:17:14.302Z\", \"assignerOrgId\": \"83251b91-4cc7-4094-a5c7-464a1b83ea10\", \"datePublished\": \"2026-07-15T11:25:35.530Z\", \"assignerShortName\": \"VulnCheck\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…