{"schema":"threatline.record/2","record":{"id":"GHSA-jmcg-c7p5-q69g","aliases":["GHSA-jmcg-c7p5-q69g"],"summary":"NocoDB Node Sends Its API Token to Attacker-Chosen Hosts When Downloading Attachments","details":"## Impact\n\nWhen the NocoDB node reads rows with \"Download Attachments\" enabled, it takes the attachment URL directly from the record content and fetches it using the configured NocoDB credential. The target host is never compared against the credential's own host, so any party who can write to an attachment cell in a NocoDB base can cause the credential's API token to be sent to a host of their choosing when the workflow next executes.\n\n## Patches\n\nThe issue has been fixed in n8n versions 1.123.89, 2.45.5, 2.46.1 and 3.0.1. Users should upgrade to one of these versions or later to remediate the vulnerability.\n\n## Workarounds\n\nIf upgrading is not immediately possible, administrators should consider the following temporary mitigations:\n- Restrict n8n instance access to fully trusted users only.\n- Disable the \"Download Attachments\" option on all active NocoDB nodes until the instance is patched.\n- Audit NocoDB base memberships and remove editor access from any users who are not fully trusted.\n- Rotate any NocoDB API tokens used by affected workflows and audit recent execution logs for unexpected outbound requests.\n- Enable SSRF protection by setting `N8N_SSRF_PROTECTION_ENABLED=true`.\n\nThese workarounds do not fully remediate the risk and should only be used as short-term mitigation measures.","categories":["Frameworks"],"product":"n8n","vendor":"","ecosystem":null,"affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-jmcg-c7p5-q69g","source_modified_at":"2026-10-28T08:49:08Z","fetched_at":"2026-10-28T15:55:58.673066Z","package":{"ecosystem":"npm","name":"n8n"},"range":"< 1.123.89"},{"source":"GitHub Advisory Database","source_url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-jmcg-c7p5-q69g","source_modified_at":"2026-10-28T08:49:08Z","fetched_at":"2026-10-28T15:55:58.673066Z","package":{"ecosystem":"npm","name":"n8n"},"range":"< 2.46.1"},{"source":"GitHub Advisory Database","source_url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-jmcg-c7p5-q69g","source_modified_at":"2026-10-28T08:49:08Z","fetched_at":"2026-10-28T15:55:58.673066Z","package":{"ecosystem":"npm","name":"n8n"},"range":"< 2.45.5"},{"source":"GitHub Advisory Database","source_url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-jmcg-c7p5-q69g","source_modified_at":"2026-10-28T08:49:08Z","fetched_at":"2026-10-28T15:55:58.673066Z","package":{"ecosystem":"npm","name":"n8n"},"range":"< 3.0.1"}],"fixed_versions":[],"cvss":6.3,"severity":"Medium","kev":{"listed":false},"epss":{"probability":null,"percentile":null,"score_date":null},"published_at":"2026-10-28T08:49:08Z","modified_at":"2026-10-28T08:49:08Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/n8n-io/n8n/security/advisories/GHSA-jmcg-c7p5-q69g","fetched_at":"2026-10-28T15:55:58.673066Z","source_modified_at":"2026-10-28T08:49:08Z"}],"sources":["GitHub Advisory Database"],"references":[],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"product","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-28T08:49:08Z","content_hash":"e4bae54ff96544be3c1bc976fae038b57e00a53d774e3f94d55b77f4b0c4ff34"}}
