{"answers":{"affected":"6 open source packages ship an affected version, including n8n. It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-65599 in the wild and no public exploit code.","fix":"Upgrade n8n to a fixed version for your release line: 1.123.64, 2.29.8 or 2.30.1.","what":"CVE-2026-65599 is a medium-severity vulnerability in N8n N8n, published on 22 Jul 2026. An attacker needs administrator access to exploit it, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-65599 and fix it if it is affected.\n\nWhat it is: CVE-2026-65599 is a medium-severity vulnerability in N8n N8n, published on 22 Jul 2026. An attacker needs administrator access to exploit it, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-65599 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- n8n (npm): affected all versions; fixed in 1.123.64\n- n8n (npm): affected all versions; fixed in 1.123.64\n- n8n (npm): affected from 2.0.0-rc.0; fixed in 2.29.8\n- n8n (npm): affected from 2.0.0-rc.0; fixed in 2.29.8\n- n8n (npm): affected from 2.30.0; fixed in 2.30.1\n- n8n (npm): affected from 2.30.0; fixed in 2.30.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-65599/ (Markdown: https://insights.sbomify.com/CVE-2026-65599/index.md)","id":"CVE-2026-65599","markdown":"https://insights.sbomify.com/CVE-2026-65599/index.md","name":"CVE-2026-65599","record":{"aliases":["GHSA-9r8p-h6cc-6qhm","MINI-3pxj-7ffq-3v83"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["data_read","data_modify"],"network_reachable":"yes","non_default_config":true,"product_category":"n8n workflow automation","requires_auth":"high_privilege","summary":"Attackers can recover Google Service Account private keys from JWT headers, allowing impersonation and unauthorized access to cloud resources.","user_interaction":"not_required","vuln_class":"information_disclosure"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"VulnCheck","cpe":[{"product":"n8n","vendor":"n8n"}],"cvss":{"score":5.1,"severity":"medium","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:N/VA:N/SC:H/SI:L/SA:L","version":"4.0"},"cwes":[{"id":"CWE-312","name":"Cleartext Storage of Sensitive Information"}],"description":"n8n versions before 1.123.64, 2.29.8, and 2.30.1 contain a credential exposure vulnerability: when configured with a Google Service Account key, the full PEM private key was mistakenly placed in the JWT header's kid field (intended only for a key identifier). Because JWT headers are Base64-encoded rather than encrypted, the private key could be recovered by anything that logged or inspected the JWT. An attacker who obtained the key could impersonate the service account and access or modify any Google Cloud resource it was authorized to use. Only instances using Google Service Account credentials are affected.","ecosystems":["npm"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"n8n before 1.123.64, 2.29.8, and 2.30.1 Credential Exposure via JWT Header","id":"CVE-2026-65599","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"npm","product":"n8n:n8n","products":["n8n:n8n"],"type":"information_disclosure","year":"2026"},"n_packages":6,"n_references":2,"next":{"headline":"Traefik before v2.11.52 Authentication Bypass via ReplacePathRegex","id":"CVE-2026-65600"},"packages":[{"ecosystem":"npm","fixed":["1.123.64"],"introduced":["0"],"last_affected":[],"package":"n8n","purl":null,"source":"GHSA-9r8p-h6cc-6qhm"},{"ecosystem":"npm","fixed":["1.123.64"],"introduced":["0"],"last_affected":[],"package":"n8n","purl":"pkg:npm/n8n","source":"GHSA-9r8p-h6cc-6qhm"},{"ecosystem":"npm","fixed":["2.29.8"],"introduced":["2.0.0-rc.0"],"last_affected":[],"package":"n8n","purl":null,"source":"GHSA-9r8p-h6cc-6qhm"},{"ecosystem":"npm","fixed":["2.29.8"],"introduced":["2.0.0-rc.0"],"last_affected":[],"package":"n8n","purl":"pkg:npm/n8n","source":"GHSA-9r8p-h6cc-6qhm"},{"ecosystem":"npm","fixed":["2.30.1"],"introduced":["2.30.0"],"last_affected":[],"package":"n8n","purl":null,"source":"GHSA-9r8p-h6cc-6qhm"},{"ecosystem":"npm","fixed":["2.30.1"],"introduced":["2.30.0"],"last_affected":[],"package":"n8n","purl":"pkg:npm/n8n","source":"GHSA-9r8p-h6cc-6qhm"}],"prev":{"headline":"n8n before 1.123.64 Remote Code Execution via Git Clone","id":"CVE-2026-65598"},"products":["n8n"],"published":"2026-07-22","related":[{"cvss_score":10,"headline":"n8n Improper Control of Dynamically-Managed Code Resources","id":"CVE-2025-68613","kev_date_added":"2026-03-11","published":"2025-12-19"},{"cvss_score":10,"headline":"n8n is vulnerable to Remote Code Execution via Arbitrary File Write","id":"CVE-2026-21877","kev_date_added":null,"published":"2026-01-08"},{"cvss_score":10,"headline":"n8n Vulnerable to Unauthenticated File Access via Improper Webhook Request Handling","id":"CVE-2026-21858","kev_date_added":null,"published":"2026-01-07"},{"cvss_score":9.9,"headline":"n8n Unsafe Workflow Expression Evaluation Allows Remote Code Execution","id":"CVE-2026-1470","kev_date_added":null,"published":"2026-01-27"},{"cvss_score":9.9,"headline":"n8n Vulnerable to Arbitrary Command Execution in Pyodide based Python Code Node","id":"CVE-2025-68668","kev_date_added":null,"published":"2025-12-26"},{"cvss_score":9.5,"headline":"n8n has Unauthenticated Expression Evaluation via Form Node","id":"CVE-2026-27493","kev_date_added":null,"published":"2026-02-25"},{"cvss_score":9.4,"headline":"n8n: HTTP Request Node Pagination Prototype Pollution to RCE","id":"CVE-2026-44789","kev_date_added":null,"published":"2026-06-23"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-10-29","vendors":["n8n-io"]},"summary":"Attackers can recover Google Service Account private keys from JWT headers, allowing impersonation and unauthorized access to cloud resources.","url":"https://insights.sbomify.com/CVE-2026-65599/"}