Baja

Contao: Server-Side Request Forgery (SSRF) via Unvalidated RSS Feed URL in Feed Reader Module

  • Publicada: 24.09.2026
  • Actualizado: 11.10.2026 10:22

Summary

The Feed Reader front-end module passes RSS feed URLs from its configuration directly to $this->feedIo->read($url) without any scheme validation or private-IP blocklist. A backend user with module-edit permissions can configure an arbitrary URL pointing to internal network services, cloud-provider metadata endpoints, or loopback addresses, causing the server to fetch those resources unconditionally. Confirmed live: the server successfully reaches the internal MySQL database container and its own loopback Apache instance.


Details

In core-bundle/src/Controller/FrontendModule/FeedReaderController.php, the getResponse() function iterates over the configured feed URLs and passes each one directly to the HTTP client with no validation:

php
// Line 50-55
foreach (StringUtil::trimsplit('[\n\t ]', trim($model->rss_feed)) as $url) {
    try {
        $feed = $this->cache->get(
            'feed_reader_'.$model->id.'_'.md5($url),
            function (ItemInterface $item) use ($url, $model) {
                $readerResult = $this->feedIo->read($url, new Feed()); // <-- no validation

The DCA field definition for rss_feed in tl_module.php carries no URL scheme or host validation:

php
'eval' => array('mandatory'=>true, 'decodeEntities'=>true, 'style'=>'height:60px')

The HTTP client is wired as @psr18.http_client (Symfony HttpClient) with no SSRF protection configured (NoPrivateNetworkHttpClient is not used).


Impact

This is a CWE-918 (SSRF) vulnerability. A backend user with module-edit access can:

  1. Enumerate internal network services -- probe any IP/port on the internal network by observing response times and error messages
  2. Reach internal APIs -- access unauthenticated services inside the Docker/Kubernetes network (databases, caches, admin panels)
  3. Steal cloud metadata credentials -- on AWS, fetch http://169.254.169.254/latest/meta-data/iam/security-credentials/ to obtain IAM role credentials (IMDSv1 has no authentication)
  4. Pivot to internal infrastructure -- use the server as a proxy to interact with services not exposed to the public internet

Confirmed in live testing: the server successfully connected to the internal MySQL container (172.19.0.3:3306) and retrieved a full HTTP response from its own loopback interface (127.0.0.1:80).


Remediation

  1. Use NoPrivateNetworkHttpClient -- wrap the injected HTTP client with Symfony's built-in SSRF protection before passing it to feedIo:

    php
    use Symfony\Component\HttpClient\NoPrivateNetworkHttpClient;
    
    $safeClient = new NoPrivateNetworkHttpClient($this->httpClient);

    This blocks all RFC-1918, loopback, and link-local addresses at the HTTP client level.

  2. Validate URL scheme and host -- before calling feedIo->read(), parse the URL and reject anything that is not http:// or https:// with a public routable IP or hostname.

  3. Configure the DCA field -- add 'rgxp' => 'url' and a custom validation callback to tl_module.rss_feed to reject non-public URLs at save time.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de Composer contao/contao >= 5.3.35, < 5.3.48, >= 5.4.0, < 5.7.9 5.3.48, 5.7.9
Paquete de Composer contao/core-bundle >= 5.3.35, < 5.3.48, >= 5.4.0, < 5.7.9 5.3.48, 5.7.9

Referencias

Puntuación CVSS 3.1/10
Vector CVSS
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
Debilidad (CWE)
CWE-918
Plataforma
Composer
Paquete
contao/contao, contao/core-bundle
Publicada
24.09.2026
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-87mg-5grr-rhwh - CC BY 4.0

Historial de vulnerabilidades: contao/core-bundle

Todas las vulnerabilidades publicadas de este paquete (Paquete de Composer), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (40) en el archivo
Entradas en total
40
Primera → última
12.2019 10.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 4
  • Alta 7
  • Media 23
  • Baja 6

Divulgaciones por año

  1. 2019: 3
  2. 2020: 1
  3. 2021: 4
  4. 2022: 8
  5. 2023: 1
  6. 2024: 7
  7. 2025: 7
  8. 2026: 9
Gravedad:
  1. Contao: Server-Side Request Forgery (SSRF) via Unvalidated RSS Feed URL in Feed Reader Module esta entrada
    Baja · 3.1 CVE-2026-57232 >= 5.3.35, < 5.3.48, >= 5.4.0, < 5.7.9 5.3.48, 5.7.9
  2. Alta · 8.3 CVE-2024-45398 >= 4.0.0, < 4.13.49, >= 5.0.0, < 5.3.15, >= 5.4.0, < 5.4.3 4.13.49, 5.3.15, 5.4.3
  3. Alta · 8.3 CVE-2024-28235 >= 4.9.0, < 4.13.40, >= 5.0.0-RC1, < 5.3.4 4.13.40, 5.3.4
  4. Crítica · 9.8 CVE-2019-11512 >= 4.1.0, < 4.4.39, >= 4.5.0, < 4.7.5 4.4.39, 4.7.5
  5. Crítica · 9.8 CVE-2017-16558 >= 4.0.0, < 4.4.8, >= 3.0.0, <= 3.5.30 4.4.8
  6. Alta · 7.2 CVE-2022-24899 >= 4.13.0, < 4.13.3 4.13.3
  7. Alta · 8.8 CVE-2019-10642 >= 4.7.0, < 4.7.3 4.7.3
  8. Crítica · 9.8 CVE-2019-10641 >= 4.0.0, < 4.4.37, >= 4.5.0, < 4.7.3 4.4.37, 4.7.3
  9. Alta · 8.8 CVE-2017-10993 >= 4.0.0, < 4.4.1 4.4.1
  10. Crítica · 9.8 CVE-2019-10643 >= 4.7.0, < 4.7.3 4.7.3
  11. Alta · 8.0 CVE-2021-37627 >= 4.0.0, < 4.4.56, >= 4.5.0, < 4.9.18, >= 4.10.0, < 4.11.7 4.4.56, 4.9.18, 4.11.7
  12. Alta · 8.8 CVE-2019-19745 >= 4.0.0, < 4.4.46, >= 4.5.0, < 4.8.6 4.4.46, 4.8.6

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.