CVE-2026-103248 Overview
CVE-2026-103248 is a filter injection vulnerability in the n8n workflow automation platform. The flaw resides in the Supabase node's Filters (String) mode, which fails to escape field values before passing them to the backend. Attackers who control filter input can inject arbitrary PostgREST filter expressions. This allows them to read every row in a table, update all records, or delete entire tables in a single request. The vulnerability is classified under [CWE-89] (SQL Injection) and affects multiple n8n release branches.
Critical Impact
Untrusted input flowing into Supabase node filters can be weaponized to exfiltrate, modify, or destroy entire database tables through a single crafted request.
Affected Products
- n8n versions before 1.123.80
- n8n versions from 2.0.0 before 2.39.6
- n8n versions from 2.40.0 before 2.40.1
Discovery Timeline
- 2026-10-01 - CVE-2026-103248 published to NVD
- 2026-10-01 - Last updated in NVD database
Technical Details for CVE-2026-103248
Vulnerability Analysis
n8n is a workflow automation tool that provides integration nodes for third-party services, including Supabase. The Supabase node exposes a Filters (String) mode that lets workflow authors supply filter expressions evaluated against PostgREST endpoints. The vulnerable code path concatenates user-controlled field values into the filter string without escaping. An attacker who can influence a workflow input, such as a webhook payload or form field, can inject additional PostgREST operators. This converts a scoped lookup into an unbounded read, update, or delete operation against the targeted Supabase table.
Root Cause
The root cause is missing output encoding of field values when building PostgREST filter strings. The Supabase node constructs the query by appending raw user input to filter operators such as eq., in., or like.. Because PostgREST treats commas and operator prefixes as structural tokens, an attacker can terminate the intended filter and append arbitrary conditions. The flaw maps to [CWE-89] because filter expressions are translated into SQL predicates on the Supabase backend.
Attack Vector
Exploitation occurs over the network and requires no authentication to the n8n instance when the vulnerable workflow is triggered by an unauthenticated event source. An attacker submits a payload containing PostgREST metacharacters into any field consumed by the Supabase node's string filter. The injected expression broadens the row match set or chains destructive operations such as DELETE or PATCH against the entire table. No verified public exploit code was referenced at the time of publication. See the GitHub Security Advisory and the VulnCheck Advisory on n8n for technical details.
Detection Methods for CVE-2026-103248
Indicators of Compromise
- Unexpected bulk DELETE or PATCH requests from n8n service accounts to Supabase or PostgREST endpoints.
- PostgREST query logs containing filter operators injected mid-value, such as unexpected ,or=(, ,eq., or ,is.null fragments.
- Workflow execution logs showing Supabase node runs that returned or affected more rows than the workflow logic should produce.
Detection Strategies
- Review n8n execution history for Supabase nodes using Filters (String) mode and inspect input bindings for untrusted data sources.
- Correlate webhook or form-trigger payloads with downstream PostgREST request bodies to identify operator metacharacters in user input.
- Alert on Supabase service role requests whose filter clauses deviate from a baseline of known workflow patterns.
Monitoring Recommendations
- Enable PostgREST and Supabase audit logging and forward events to a centralized SIEM for retention and query.
- Monitor n8n instances for version strings below the fixed releases and track workflow definitions that reference the Supabase node.
- Rate-limit and record Supabase API tokens issued to n8n so that anomalous row counts can be investigated quickly.
How to Mitigate CVE-2026-103248
Immediate Actions Required
- Upgrade n8n to 1.123.80, 2.39.6, or 2.40.1 or later depending on the branch in use.
- Audit all workflows that use the Supabase node in Filters (String) mode and identify any that accept external input.
- Rotate Supabase service role keys and API tokens used by n8n if exposure to untrusted input is suspected.
Patch Information
The maintainers released fixed versions 1.123.80, 2.39.6, and 2.40.1. These releases add proper escaping of field values in the Supabase node's string filter builder. Patch details are documented in the GitHub Security Advisory GHSA-xrqg-3xcp-h45x.
Workarounds
- Switch affected Supabase nodes from Filters (String) mode to the structured Filters mode, which binds values as discrete fields.
- Validate and allowlist input values at the workflow entry point before they reach the Supabase node, rejecting PostgREST metacharacters such as commas and operator prefixes.
- Restrict the Supabase role used by n8n to the minimum tables and operations required, limiting the blast radius of a successful injection.
# Configuration example
# Upgrade n8n using npm to a fixed release
npm install -g n8n@1.123.80
# Or pin a fixed 2.x release in docker-compose.yml
# image: n8nio/n8n:2.40.1
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

