CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-57232

CVE-2026-57232: Server-Side Request Forgery in Contao CMS Feed Reader Module

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 24, 2026·7 min read·16 visits

Executive Summary (TL;DR)

An authenticated backend SSRF vulnerability in the Contao CMS Feed Reader module allows users with module-editing privileges to force the host server to scan or interact with private internal networks and cloud metadata endpoints.

A Server-Side Request Forgery (SSRF) vulnerability exists in the Contao Open Source Content Management System (CMS) within the Feed Reader front-end module. When processing RSS feed configurations, the module initiates outbound HTTP connections using a default HTTP client that lacks loopback and private network controls. Authenticated backend users with permissions to configure frontend modules can exploit this flaw to coerce the server into sending requests to internal endpoints, loopback addresses, and cloud instance metadata services.

Vulnerability Overview

CVE-2026-57232 describes a Server-Side Request Forgery (SSRF) vulnerability in the Contao Open Source Content Management System (CMS). The defect resides within the Feed Reader front-end module, which is designed to fetch, parse, and display RSS feeds from external sources. Because the network architecture of the module did not restrict target destinations, the application represents an exposed attack surface to anyone capable of editing frontend module configurations.

The vulnerability is classified under CWE-918 (Server-Side Request Forgery). The scope of this issue allows an attacker to direct HTTP requests from the hosting server to arbitrary external hosts, internal local networks, loopback addresses, or cloud-specific instance metadata endpoints. This dynamic allows adversaries to bypass boundary protection systems that restrict direct external access to internal infrastructure.

While the baseline impact on confidentiality is low, the vulnerability introduces operational risks depending on the network environment in which Contao is deployed. The system acts as an open proxy for internal services, rendering administrative panels, microservices, and management daemons vulnerable to targeted enumeration.

Root Cause Analysis

The root cause of this vulnerability lies in the implementation of the RSS rendering logic within core-bundle/src/Controller/FrontendModule/FeedReaderController.php. The controller uses a third-party feed-reading library named FeedIo to handle the downloading and formatting of RSS feeds. When fetching external documents, the FeedReaderController::getResponse() function processes user-configured feed URLs and executes the network request using the statement $this->feedIo->read($url, new Feed()).

The underlying HTTP client injected into the feed-reading service was wired directly to the @psr18.http_client service, which maps to Symfony's standard HttpClient wrapper. By default, this HTTP client contains no inherent filters to validate or block destination IP addresses. As a result, the client handles requests targeting internal IP address blocks, such as loopback interfaces (127.0.0.1, [::1]), private subnets (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), and link-local addresses (169.254.169.254) with no validation checks.

Additionally, the Data Container Array (DCA) field definition for rss_feed in tl_module.php did not enforce strict schema or protocol verification on the input values. Administrators or users with restricted module-editing permissions could save arbitrary URI schemes and targets. The combination of unvalidated backend database configuration fields and an unfiltered outbound HTTP client directly enabled the SSRF state.

Code Analysis

To resolve the vulnerability, the Contao maintainers introduced a decorated HTTP client named NoPrivateNetworkExceptRootPagesHttpClient to wrap Symfony's HTTP client structure. Below is a simplified representation of how the patch inspects and blocks requests to private ranges while permitting legitimate loopback calls to root pages of the CMS.

// Contao\CoreBundle\HttpClient\NoPrivateNetworkExceptRootPagesHttpClient
 
private function ipCheck(string $ip, string|null $host, string $url): void
{
    $ipFlags = FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6;
    if (!\defined('STREAM_PF_INET6')) {
        $ipFlags &= ~FILTER_FLAG_IPV6;
    }
 
    $ipFlags |= FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
 
    // Verify if the resolved IP belongs to a public space
    if (false !== filter_var($ip, FILTER_VALIDATE_IP, $ipFlags) && !IpUtils::checkIp($ip, IpUtils::PRIVATE_SUBNETS)) {
        return;
    }
 
    // Allow private IPs only if the request targets a pre-configured CMS root page
    if ($this->originAllowed($url)) {
        return;
    }
 
    throw new TransportException(\sprintf('IP "%s" is blocked for "%s".', $ip, $url));
}

The implementation is robust against DNS Rebinding attacks. Many simple SSRF filters perform a single DNS resolution at the start of the request lifecycle, creating a Time-of-Check to Time-of-Use (TOCTOU) bug. Contao mitigates this risk by registering an on_progress callback with Symfony's HTTP transport, validating the connection's primary_ip during the actual socket connection phase:

$options['on_progress'] = function (int $dlNow, int $dlSize, array $info) use ($onProgress): void {
    static $lastPrimaryIpUrl = '';
    if (!empty($info['primary_ip']) && $info['primary_ip']."\0".$info['url'] !== $lastPrimaryIpUrl) {
        $this->ipCheck($info['primary_ip'], null, $info['url']);
        $lastPrimaryIpUrl = $info['primary_ip']."\0".$info['url'];
    }
    null !== $onProgress && $onProgress($dlNow, $dlSize, $info);
};

Furthermore, the patch disables automatic HTTP redirects (max_redirects = 0) at the native library layer. Instead, it processes each redirect link manually within the decorator loop, running the resolved IP check on every hop in the redirection chain. This structure prevents attackers from using a public domain to trigger an internal redirect to loopback services.

Exploitation Methodology

Exploitation of CVE-2026-57232 requires low-privileged administrative access to the Contao backend. The attacker must possess credentials belonging to a role permitted to modify frontend modules, specifically those of the Feed Reader type.

Once logged in, the exploitation steps proceed as follows:

First, the attacker creates or edits a Feed Reader module within the administrative interface. In the "RSS feeds" form field, instead of entering a legitimate external feed, they input an address pointing to a restricted internal network resource, such as http://169.254.169.254/latest/meta-data/.

Second, the module configuration is saved to the database. The attacker then ensures this module is assigned to a published page. When the attacker or an unsuspecting visitor requests the page containing the Feed Reader module, the server-side application processes the page and executes FeedReaderController::getResponse().

Third, the web server initiates an outbound HTTP request directly to the specified target. If the service on the targeted IP returns structured XML, the module may render parts of the data. Even if the service returns non-XML data resulting in a parsing error, the attacker can verify connectivity, perform blind SSRF, or measure response times to map active ports and internal network infrastructure.

Impact Assessment

The impact of CVE-2026-57232 is quantified by its CVSS v3.1 vector string of CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N, yielding a base score of 3.1 (Low). The low score is primarily influenced by the privilege requirement, as an attacker must have a backend account with module modification rights (PR:L), and the high attack complexity (AC:H) due to the parser expecting valid RSS syntax to display response data.

In environments where Contao is deployed on cloud hosting solutions such as AWS, Google Cloud, or Azure, the vulnerability poses a risk of metadata exposure. If the cloud instance is configured with older metadata endpoint formats (such as AWS IMDSv1, which does not require a custom HTTP header), an attacker could query local endpoints to extract sensitive data, instance credentials, or API keys.

In standard enterprise environments, the server-side request capability allows adversaries to bypass perimeter security. An attacker can scan internal corporate networks, map accessible ports on the local host, and trigger arbitrary GET requests against unauthenticated administrative services running within the loopback boundary.

Remediation and Mitigation

The primary remediation strategy is to upgrade the Contao CMS installation to a fixed version. Maintainers have released patches addressing this vulnerability across all supported branches. System administrators must upgrade immediately to Contao version 5.3.48 (LTS) or version 5.7.9.

If patching cannot be executed immediately, administrators should implement the following mitigating controls:

  1. Restrict backend user permissions to ensure that only trusted, highly privileged administrators can create or edit frontend modules, specifically limiting the modification of the Feed Reader module.
  2. Apply host-level firewall rules or security groups to prevent the web server process from initiating outbound connections to the local network or cloud metadata addresses (e.g., block outgoing traffic to 169.254.169.254 and limit outbound egress on ports 80 and 443 to known external gateways).
  3. Implement a Web Application Firewall (WAF) rule to inspect backend module submission parameters and block input strings in rss_feed fields containing private or loopback IP structures.

Official Patches

ContaoContao Official Security Advisory
ContaoContao Release v5.3.48
ContaoContao Release v5.7.9

Fix Analysis (2)

Technical Appendix

CVSS Score
3.1/ 10
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
EPSS Probability
0.29%
Top 81% most exploited

Affected Systems

Contao Open Source CMS

Affected Versions Detail

Product
Affected Versions
Fixed Version
Contao core-bundle
Contao
>= 5.3.35, <= 5.3.475.3.48
Contao core-bundle
Contao
>= 5.7.0-RC1, <= 5.7.85.7.9
AttributeDetail
CWE IDCWE-918 (Server-Side Request Forgery)
Attack VectorNetwork (AV:N)
CVSS v3.1 Score3.1 (Low)
EPSS Score0.0029 (0.29% percentile: 19.12%)
ImpactLow Confidentiality (C:L), No Integrity (I:N), No Availability (A:N)
Exploit StatusNo public exploits or weaponized PoCs available
KEV StatusNot listed in CISA KEV Catalog

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
CWE-918
Server-Side Request Forgery

Server-Side Request Forgery (SSRF) occurs when a web application fetches a remote resource without validating the user-supplied URL. This allows an attacker to coerce the application into sending a crafted request to an unexpected destination, often bypassing security controls such as firewalls.

References & Sources

  • [1]GHSA-87mg-5grr-rhwh: Server-Side Request Forgery in Contao Feed Reader
  • [2]NVD - CVE-2026-57232 Detailed Information
  • [3]CVE.org Authority Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 days ago•CVE-2026-16454
4.3

CVE-2026-16454: Object-Level Authorization Bypass in Eclipse hawkBit Direct Device Integration Controller

CVE-2026-16454 is an object-level authorization bypass vulnerability (CWE-284, CWE-862) in Eclipse hawkBit versions 1.0.3 and prior. The flaw exists within the Direct Device Integration (DDI) REST controller (hawkbit-ddi-resource), where endpoints responsible for enumerating software module metadata and serving firmware binaries fail to verify whether the requested software module is assigned to the authenticated device. Consequently, any device with valid credentials (such as a TargetToken or GatewayToken) can enumerate software module identifiers and download arbitrary firmware artifacts across the entire tenant namespace.

Amit Schendel
Amit Schendel
10 views•9 min read
•2 days ago•CVE-2026-62284
8.6

CVE-2026-62284: Remote Code Execution and SSRF via Unsanitized Kubeconfig in OSAC Operator

CVE-2026-62284 (GHSA-5w5g-j6hw-6p8f) is a code injection and server-side request forgery vulnerability in the console-proxy component of the OSAC Operator. The RemoteConfigResolver parses Kubernetes Secrets containing kubeconfig files via clientcmd.RESTConfigFromKubeConfig without sanitizing execution-related fields. An attacker with RBAC permissions to create or modify labeled Secrets in monitored namespaces can supply a malicious exec credential plugin, resulting in arbitrary command execution within the console-proxy pod.

Amit Schendel
Amit Schendel
8 views•8 min read
•2 days ago•CVE-2026-62361
5.5

CVE-2026-62361: Authenticated SQL Injection and Table Access Control Bypass in Listmonk Subscriber Export

CVE-2026-62361 (GHSA-xgjr-7j9q-2h4r) is an authenticated SQL injection and authorization bypass vulnerability in listmonk, an open-source, self-hosted newsletter and mailing list manager written in Go. In versions prior to 6.2.0, the subscriber export endpoint (GET /api/subscribers/export) directly interpolates user-supplied SQL filter expressions into a PostgreSQL query without invoking the table allowlist validation function (validateQueryTables). Consequently, authenticated users possessing the subscribers:sql_query and subscribers:get_all permissions can bypass relational access controls, execute arbitrary subqueries against restricted tables such as users and settings, and modify database state via writable Common Table Expressions (CTEs).

Alon Barad
Alon Barad
9 views•11 min read
•2 days ago•CVE-2026-28385
5.0

CVE-2026-28385: Server-Side Request Forgery in Canonical LXD Image Import

CVE-2026-28385 (GHSA-3gq2-x4qg-p4g6) is a Server-Side Request Forgery (SSRF) vulnerability in Canonical LXD versions 4.12 through 6.9. An authenticated user possessing the can_create_images entitlement can force the LXD daemon to execute arbitrary outbound HTTP and HTTPS requests via the /1.0/images API endpoint. Due to the absence of egress destination validation, an attacker can probe host loopback services, RFC 1918 private network segments, and cloud Instance Metadata Services (IMDS) from the network position of the privileged LXD daemon.

Amit Schendel
Amit Schendel
10 views•9 min read
•2 days ago•GHSA-9J25-MM2H-2F76
9.9

CVE-2026-48750: Arbitrary File Write on Host via exec-output Symlink in Canonical LXD and Incus

Canonical LXD and LXC Incus contain an arbitrary file write vulnerability (CWE-73 / CWE-59) in the `/1.0/instances/<name>/exec` REST API endpoint. When an instance is unpacked from an image archive, top-level symbolic links are extracted directly onto the host filesystem within the instance storage directory. If a crafted image includes a symbolic link named `exec-output` pointing to an arbitrary host path, invoking the execution endpoint with `record-output: true` causes the privileged host daemon to follow the symlink and write command output files directly to the target host directory. An authenticated attacker with permissions to import images and execute commands can exploit this flaw to write controlled content to sensitive host directories such as `/etc/cron.d`, resulting in arbitrary code execution on the host as `root`.

Alon Barad
Alon Barad
8 views•12 min read
•2 days ago•GHSA-VGHH-5RFX-XHQ8
9.9

CVE-2026-48749: Arbitrary Host File Read and Write via Malicious Image Symlink in Canonical LXD and Incus

CVE-2026-48749 (tracked as GHSA-vghh-5rfx-xhq8 for LXD and GHSA-2q3f-q5pq-g8wv for Incus) is a critical container escape vulnerability in the Canonical LXD and Linux Containers Incus system container managers. By importing a specially crafted container image archive containing duplicate tar member headers, an authenticated attacker can replace the instance rootfs directory with a symbolic link pointing to the underlying host root filesystem. When performing file operations on a stopped container, the privileged forkfile helper binary resolves the symbolic link without confinement and chroots directly into the host filesystem, granting arbitrary root-level file read and write access.

Amit Schendel
Amit Schendel
8 views•9 min read