CVE-2026-21858: n8n Webhooks - Remote Code Execution

日期: 2026-01-16 | 影响软件: n8n Webhooks | POC: 已公开

漏洞描述

n8n is an open source workflow automation platform. Versions starting with 1.65.0 and below 1.121.0 enable an attacker to access files on the underlying server through execution of certain form-based workflows. A vulnerable workflow could grant access to an unauthenticated remote attacker, resulting in exposure of sensitive information stored on the system and may enable further compromise depending on deployment configuration and workflow usage. This issue is fixed in version 1.121.0.

PoC代码[已公开]

id: CVE-2026-21858

info:
  name: n8n Webhooks - Remote Code Execution
  author: rxerium
  severity: critical
  description: |
    n8n is an open source workflow automation platform. Versions starting with 1.65.0 and below 1.121.0 enable an attacker to access files on the underlying server through execution of certain form-based workflows. A vulnerable workflow could grant access to an unauthenticated remote attacker, resulting in exposure of sensitive information stored on the system and may enable further compromise depending on deployment configuration and workflow usage. This issue is fixed in version 1.121.0.
  impact: |
    Unauthenticated remote attackers can access sensitive files, potentially leading to information disclosure and further system compromise.
  remediation: |
    Update to version 1.121.0 or later.
  reference:
    - https://thehackernews.com/2026/01/critical-n8n-vulnerability-cvss-100.html
    - https://nvd.nist.gov/vuln/detail/CVE-2026-21858
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
    cvss-score: 10.0
    cve-id: CVE-2026-21858
    epss-score: 0.02955
    epss-percentile: 0.86059
    cwe-id: CWE-20
  metadata:
    verified: true
    max-request: 1
    shodan-query: http.favicon.hash:-831756631
  tags: cve,cve2026,n8n,workflow,rce,passive,vkev

http:
  - method: GET
    path:
      - "{{BaseURL}}/signin"

    extractors:
      - type: regex
        name: base64_content
        group: 1
        regex:
          - '<meta name="n8n:config:sentry" content="([A-Za-z0-9+/=]+)"'
        internal: true

      - type: dsl
        name: decoded
        dsl:
          - 'base64_decode(base64_content)'
        internal: true

      - type: dsl
        name: version
        dsl:
          - 'replace_regex(base64_decode(base64_content), ".*n8n@([0-9]+\\.[0-9]+\\.[0-9]+).*", "$1")'
        internal: true

      - type: dsl
        dsl:
          - '"n8n Version: " + version'

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "<title>n8n.io"
        case-insensitive: true

      - type: status
        status:
          - 200

      - type: dsl
        name: vulnerable
        dsl:
          - compare_versions(version, '>= 1.65.0', '< 1.121.0')
# digest: 490a0046304402201bf421ea1024f54ba96e7aa5eda102c04e8ee729f3b4934f7539d12fbaf57e5a022041f9d282b11145be0ab6e249d8caed2e906f15ed45577e0a077f78dfc2a07602:922c64590222798bb761d5b6d8e72950

相关漏洞推荐