CVE-2026-46548 Overview
CVE-2026-46548 is a Server-Side Request Forgery (SSRF) vulnerability [CWE-918] in NocoDB, an open-source platform for building databases as spreadsheets. The flaw exists in versions prior to 2026.04.1. The request-filtering-agent SSRF protection was non-functional across four notification webhook plugins: Slack, Discord, Mattermost, and Teams. Developers passed httpAgent and httpsAgent as part of the request body rather than the axios configuration object, bypassing the intended filtering. An authenticated user with hook-creation permission could direct outbound POST requests to arbitrary internal hosts.
Critical Impact
Authenticated attackers with webhook creation privileges can send POST requests to internal network resources, enabling reconnaissance of otherwise unreachable internal services.
Affected Products
- NocoDB versions prior to 2026.04.1
- Slack, Discord, Mattermost, and Teams notification webhook plugins
- Self-hosted NocoDB deployments exposing webhook configuration
Discovery Timeline
- 2026-06-23 - CVE-2026-46548 published to NVD
- 2026-06-25 - Last updated in NVD database
Technical Details for CVE-2026-46548
Vulnerability Analysis
The vulnerability resides in NocoDB's four notification webhook plugins. NocoDB integrated the request-filtering-agent library to block outbound requests to private IP ranges and localhost. The library functions correctly when supplied to axios through the configuration object. In the affected plugins, developers placed httpAgent and httpsAgent inside the request body payload instead. Axios ignored these properties as filtering controls. Outbound requests then used the default agent without IP filtering. Attackers with hook-creation permission can target internal services such as cloud metadata endpoints, internal APIs, and administrative interfaces.
Root Cause
The root cause is an API misuse defect. The httpAgent and httpsAgent parameters belong to the axios request configuration, not the request body. Misplacement of these properties produced silent failure of SSRF controls without runtime errors or warnings.
Attack Vector
Exploitation requires an authenticated session with permission to create or modify notification webhooks. The attacker configures a Slack, Discord, Mattermost, or Teams webhook destination pointing to an internal address such as http://169.254.169.254/latest/meta-data/ or http://localhost:8080/admin. When the webhook fires, NocoDB issues the POST request from its server, reaching resources the attacker cannot access directly.
No verified public exploit code is available. Refer to the GitHub Security Advisory for technical details on the patch.
Detection Methods for CVE-2026-46548
Indicators of Compromise
- Outbound HTTP POST requests from NocoDB server processes to RFC1918 addresses, 127.0.0.1, or 169.254.169.254
- Webhook configurations referencing internal hostnames, private IPs, or cloud metadata endpoints
- Unexpected webhook creation events from non-administrative user accounts
- Audit log entries showing rapid creation or modification of Slack, Discord, Mattermost, or Teams hooks
Detection Strategies
- Inspect NocoDB application logs for webhook target URLs resolving to internal address space
- Monitor egress firewall logs for connection attempts from NocoDB hosts to internal subnets
- Review database tables holding webhook configurations for suspicious destination URLs
- Correlate authenticated user sessions with webhook creation followed by outbound internal traffic
Monitoring Recommendations
- Enforce egress filtering at the network layer to block NocoDB server access to internal management plane addresses
- Alert on any DNS resolution from NocoDB workloads for internal-only domains
- Log all webhook CRUD operations with associated user identity and destination URL
- Track HTTP response codes from webhook deliveries that suggest interaction with non-public services
How to Mitigate CVE-2026-46548
Immediate Actions Required
- Upgrade NocoDB to version 2026.04.1 or later without delay
- Audit existing webhook configurations and remove any pointing to internal addresses
- Restrict the hook-creation permission to trusted administrators only
- Apply network egress controls preventing NocoDB hosts from reaching cloud metadata services and internal subnets
Patch Information
NocoDB resolved the issue in version 2026.04.1. The fix relocates httpAgent and httpsAgent into the axios configuration object so the request-filtering-agent enforces IP filtering on outbound webhook requests. Review the GitHub Security Advisory GHSA-2c5x-4jgf-88mj for the upstream commit.
Workarounds
- Disable the Slack, Discord, Mattermost, and Teams webhook plugins until the patch is applied
- Deploy NocoDB behind a forward proxy that blocks requests to private IP space and metadata endpoints
- Revoke webhook management permissions from non-administrator roles
- Configure host-level firewall rules denying outbound traffic from NocoDB to internal management interfaces
# Configuration example: restrict NocoDB egress with iptables
iptables -A OUTPUT -m owner --uid-owner nocodb -d 169.254.169.254 -j DROP
iptables -A OUTPUT -m owner --uid-owner nocodb -d 10.0.0.0/8 -j DROP
iptables -A OUTPUT -m owner --uid-owner nocodb -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -m owner --uid-owner nocodb -d 192.168.0.0/16 -j DROP
iptables -A OUTPUT -m owner --uid-owner nocodb -d 127.0.0.0/8 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

