Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-72598

CVE-2026-72598: Apioo Fusio SSRF Vulnerability

CVE-2026-72598 is a server-side request forgery flaw in Apioo Fusio 8.8.3 that lets authenticated users force the server to make HTTP requests to internal network addresses via webhook registration.

Published:

CVE-2026-72598 Overview

CVE-2026-72598 is a Server-Side Request Forgery (SSRF) vulnerability in Apioo Fusio version 8.8.3. The flaw resides in the webhook registration endpoint, which validates URL syntax using PHP's FILTER_VALIDATE_URL but enforces no IP or host denylist. Authenticated users holding the consumer role can register webhook URLs that point to internal network addresses. When the associated event fires, the server issues an HTTP POST to the attacker-supplied internal URL, exposing internal services to unauthorized interaction. The weakness is tracked under [CWE-918].

Critical Impact

An authenticated consumer-role user can coerce the Fusio server into making arbitrary HTTP requests to internal network hosts, enabling reconnaissance and interaction with services otherwise unreachable from the internet.

Affected Products

  • Apioo Fusio 8.8.3
  • Webhook registration component of Fusio API management platform
  • Deployments exposing the consumer-role webhook registration endpoint

Discovery Timeline

  • 2026-08-11 - CVE-2026-72598 published to the National Vulnerability Database
  • 2026-08-11 - Last updated in NVD database

Technical Details for CVE-2026-72598

Vulnerability Analysis

Fusio is an open-source API management platform written in PHP. It permits consumers to subscribe to events through webhooks, delivering event payloads via outbound HTTP POST requests. The registration endpoint accepts a target URL from the authenticated consumer and stores it for later delivery.

The endpoint validates the submitted URL only against syntactic rules using PHP's FILTER_VALIDATE_URL. This filter confirms that the string is a well-formed URL but performs no resolution or reputation check on the host component. As a result, private IPv4 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback addresses (127.0.0.0/8), link-local addresses (169.254.0.0/16), and cloud metadata endpoints such as 169.254.169.254 are accepted without objection.

When the subscribed event triggers, the Fusio worker resolves the stored URL and issues an HTTP POST containing the event payload. The response body and status code can leak back to the attacker through delivery status logs, enabling blind or semi-blind reconnaissance of internal HTTP services.

Root Cause

The root cause is missing egress validation on user-controlled URLs. FILTER_VALIDATE_URL checks only syntax, not destination safety. The webhook subsystem trusts the stored URL at delivery time and does not enforce an allowlist of external destinations or a denylist of internal address ranges.

Attack Vector

An attacker authenticates to Fusio with a consumer-role account, which typically requires minimal privileges and is often self-registration enabled. The attacker registers a webhook subscription with a URL such as http://127.0.0.1:8080/admin or http://169.254.169.254/latest/meta-data/. Triggering the subscribed event causes the Fusio server to issue an outbound POST to that internal target from a trusted network position.

Refer to the Fusio GitHub repository for source-level details of the webhook subsystem.

Detection Methods for CVE-2026-72598

Indicators of Compromise

  • Webhook records in the Fusio database whose target URL resolves to RFC1918, loopback, or link-local addresses.
  • Outbound HTTP POST requests from the Fusio host to internal IP ranges or cloud metadata endpoints such as 169.254.169.254.
  • Consumer-role accounts registering multiple webhook endpoints in rapid succession, often with varied ports.
  • Webhook delivery logs showing non-standard internal ports (for example, 6379, 9200, 8500, 2375).

Detection Strategies

  • Inspect the fusio_webhook table (or equivalent storage) and flag entries whose host resolves to private or loopback ranges.
  • Deploy egress network monitoring on the Fusio server to alert on connections to internal subnets that are not part of expected integrations.
  • Correlate consumer account creation events with immediate webhook registrations targeting unusual hostnames.

Monitoring Recommendations

  • Forward Fusio application logs and webhook delivery logs to a centralized logging platform for retention and search.
  • Alert on any outbound request from Fusio to cloud instance metadata service addresses.
  • Baseline expected webhook destinations and generate alerts for deviations.

How to Mitigate CVE-2026-72598

Immediate Actions Required

  • Audit existing webhook subscriptions and remove any pointing to internal, loopback, or metadata addresses.
  • Restrict consumer-role registration and require administrative approval for new consumer accounts on exposed Fusio deployments.
  • Place the Fusio worker in a network segment that cannot reach sensitive internal services or the cloud metadata endpoint.

Patch Information

No vendor patch reference is listed in the NVD entry at the time of publication. Monitor the Fusio GitHub repository for updates addressing the webhook URL validation logic.

Workarounds

  • Introduce a reverse proxy or egress firewall that permits Fusio outbound HTTP traffic only to an allowlist of external destinations.
  • Block the cloud metadata IP 169.254.169.254 from the Fusio host using host-based firewall rules or IMDSv2 enforcement on AWS.
  • Add a custom validation layer that resolves webhook hostnames and rejects submissions targeting private, loopback, or link-local ranges before storage.
bash
# Configuration example: iptables egress rule blocking private ranges from the Fusio host
iptables -A OUTPUT -m owner --uid-owner fusio -d 10.0.0.0/8 -j REJECT
iptables -A OUTPUT -m owner --uid-owner fusio -d 172.16.0.0/12 -j REJECT
iptables -A OUTPUT -m owner --uid-owner fusio -d 192.168.0.0/16 -j REJECT
iptables -A OUTPUT -m owner --uid-owner fusio -d 127.0.0.0/8 -j REJECT
iptables -A OUTPUT -m owner --uid-owner fusio -d 169.254.0.0/16 -j REJECT

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.