External risk intelligence

Plack App Prerender Allows Arbitrary Host Access via Unvalidated Request URI.

CVE advisorySeverity: CRITICAL (CVSS 9.1)

CVE-2026-17552

This vulnerability affects a web application component (Plack::App::Prerender) designed to handle HTTP requests and proxying. Such components are commonly deployed as part of public-facing web services or APIs to manage content rendering, making them reachable by internet-based requests.

Server-Side Request Forgery

Halo Surface Signal: 4 out of 5 — likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a critical vulnerability in Plack::App::Prerender, a component used in Perl applications for content rendering. The issue allows unvalidated requests to proxy to arbitrary hosts, potentially enabling attackers to access internal or restricted network resources that the webserver can reach. The primary concern at this stage is to confirm if this technology is in use and assess any exposure.

  • Unvalidated requests can proxy to any server.
  • Matters if you use Perl web rendering.
  • Confirm relevance and exposure.

Attack Path

How an attacker could exploit the issue

An attacker can manipulate requests to the Plack::App::Prerender component, which proxies to other hosts, to redirect requests to arbitrary internal or restricted systems. By crafting a specific URI that includes userinfo in the rewrite base, the attacker can effectively change the target host, causing the application to fetch and return content from unintended locations. This allows an attacker to bypass access controls and retrieve sensitive information from internal network resources.

  • Attack starts from the network.
  • Unvalidated request URI concatenation.
  • Access internal or restricted hosts.

Live Threat

Current exploitation, exposure, and threat context

This vulnerability could allow an attacker to redirect requests intended for the Plack::App::Prerender component to arbitrary hosts. When the rewrite base is a plain string and a specially crafted request URI is provided, the component may append the URI without proper validation, potentially changing the target hostname to one controlled by the attacker. This could enable access to internal or restricted hosts accessible only by the webserver.

  • Internal or restricted hosts.
  • Requests to attacker-controlled hosts.
  • Exposure of internal network resources.

Operational Fix

Recommended remediation, mitigation, and detection steps

The Plack::App::Prerender vulnerability requires immediate attention from teams managing web application infrastructure. The potential for arbitrary host access via unvalidated REQUEST_URI concatenation means that application owners and platform teams must swiftly identify all deployments of this component. Once identified, reachability and business criticality must be assessed to prioritize remediation efforts, likely involving coordination with vendor management if a third-party application is affected.

  • Application owners should manage the issue.
  • Verify external reachability first.
  • Plan for vendor coordination and patching.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is Plack::App::Prerender?

Plack::App::Prerender is a component for the Perl programming language used in web applications to facilitate content rendering. It functions as a proxy, meaning it handles incoming HTTP requests and forwards them to a configured host to retrieve content. Developers use it within the Plack/PSGI ecosystem to help render pages, often for search engine optimization or to prepare content for client-side consumption.

What kind of vulnerability is CVE-2026-17552?

This vulnerability is classified as CWE-918: Server-Side Request Forgery (SSRF). In plain terms, the application fails to verify the destination of a request it is told to proxy. Because the component blindly trusts the incoming URI, an attacker can manipulate the request to force the server to connect to an unintended target, such as an internal system or private service, rather than the legitimate backend host.

How does an attacker trigger this vulnerability?

An attacker sends a specially crafted HTTP request to the application. By starting the request target with an at-sign (@), the attacker tricks the application's logic into treating the provided input as user information for the URL. This allows them to override the intended hostname. If the application is configured with a standard rewrite base, simply sending a request that lacks a leading forward slash enables this redirection.

Is my system at risk if it is not internet-facing?

According to Halo Surface Signal, this vulnerability affects web components specifically designed to handle and proxy HTTP requests, making them prime targets if deployed in public-facing services. While internal-only systems have a smaller attack surface, any service reachable by users or other internal network participants could still be leveraged to probe other restricted parts of your infrastructure.

What should I do to address this issue?

Start by identifying all Perl applications in your environment that utilize Plack::App::Prerender. Check your dependency lists to determine if you are running a version earlier than 0.3.0. If you are, prioritize updating to a patched version. In the meantime, evaluate whether these services truly need to communicate with sensitive internal resources and consider implementing strict network-level egress filtering.

References