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-2025-8267

CVE-2025-8267: Server-Side Request Forgery Bypass via Multicast Address Exclusion in ssrfcheck

Amit Schendel
Amit Schendel
Senior Security Researcher

May 5, 2026·7 min read·35 visits

Executive Summary (TL;DR)

A flaw in the ssrfcheck npm library (< 1.2.0) allows attackers to bypass SSRF protections by providing URLs resolving to IPv4 Multicast addresses. This enables targeted requests against internal services such as UPnP and mDNS.

The ssrfcheck npm package before version 1.2.0 contains a Server-Side Request Forgery (SSRF) vulnerability due to an incomplete blocklist of reserved IP address ranges. By omitting the IPv4 Multicast range (224.0.0.0/4), the library allows attackers to bypass validation and issue requests targeting internal network infrastructure.

Vulnerability Overview

The ssrfcheck npm package provides URL validation logic designed to prevent Server-Side Request Forgery (SSRF) attacks in Node.js applications. Applications utilize this library to verify that user-provided URLs resolve to public internet addresses rather than internal, private, or reserved network segments. The core validation mechanism relies on resolving the target hostname to an IP address and comparing it against a predefined list of restricted Classless Inter-Domain Routing (CIDR) blocks.

Versions of the library prior to 1.2.0 implement an incomplete static blocklist that fails to classify the IPv4 Multicast address space (224.0.0.0/4) as restricted. When an application passes a URL containing a multicast IP address or a hostname resolving to one, the ssrfcheck validation logic categorizes the destination as a public, routable IP address. This design flaw fundamentally breaks the security guarantees of the library, resulting in a classic SSRF vulnerability (CWE-918).

Attackers leveraging this flaw bypass the primary security control meant to constrain outbound network requests. By supplying crafted URLs, an unauthenticated remote attacker can force the hosting application to initiate HTTP requests to internal network segments. This access enables interaction with protocols and services that rely on multicast routing, facilitating unauthorized discovery and interaction within the application's local network environment.

Root Cause Analysis

The vulnerability stems from an architectural reliance on a static blocklist of private IP address ranges within the src/is-private-ip.js module. The library defines a constant array named PRIVATE_CIDRS containing recognized non-routable prefixes, such as 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16. During the execution of the isSSRFSafeURL function, the library iterates through this array and returns a failure state if the resolved IP address falls within any of the specified boundaries.

The IPv4 Multicast range, defined by the Internet Engineering Task Force (IETF) in RFC 5771, spans from 224.0.0.0 to 239.255.255.255 (224.0.0.0/4). This block is reserved for IP multicasting and is not intended for public internet routing. The maintainers of ssrfcheck omitted this specific /4 network block from the PRIVATE_CIDRS array. Consequently, the blocklist comparison loop terminates without a match when processing a multicast address, defaulting to an allowed state.

This flaw highlights the inherent risk of implementing security controls using static deny-lists (blocklists) rather than allow-lists. Network address allocation involves numerous reserved, experimental, and special-purpose prefixes. Failing to explicitly define every non-public prefix leaves security mechanisms vulnerable to edge-case routing behaviors. The application relying on the library proceeds to execute the network fetch operation, assuming the destination is safe.

Code Analysis

An analysis of the patch applied in commit 9507b49fd764f2a1a1d1e3b9ee577b7545e6950e clearly demonstrates the implementation flaw. The remediation involves a single line addition to the PRIVATE_CIDRS array within the src/is-private-ip.js file. The vulnerable code lacked the 224.0.0.0/4 CIDR notation, forcing the validation function to skip the multicast space entirely.

 // src/is-private-ip.js (Patched Version)
 const PRIVATE_CIDRS = [
   '198.18.0.0/15',
   '198.51.100.0/24',
   '203.0.113.0/24',
+  '224.0.0.0/4',
   '240.0.0.0/4',
   '255.255.255.255/32'
 ];

The fix directly appends the missing CIDR range to the existing array. Any IP address beginning with an octet between 224 and 239 now triggers the internal matcher, returning a failure state. The following diagram illustrates the vulnerable control flow bypass:

While the patch addresses the immediate vulnerability by covering the IPv4 Multicast block, developers must scrutinize the entirety of the PRIVATE_CIDRS array. The reliance on a hardcoded list means that missing IPv6 equivalents, such as the ff00::/8 IPv6 multicast prefix, or other specialized ranges like Carrier-Grade NAT (100.64.0.0/10), require manual additions if they are not already present in the source code.

Exploitation Methodology

Exploiting this vulnerability requires the application to accept a user-controlled URL and subsequently perform a server-side request using that input. The attacker crafts a payload utilizing a multicast IP address, commonly targeting well-known local administrative protocols. A technical Proof-of-Concept (PoC) authored by Liran Tal demonstrated the bypass by passing a URL such as http://239.255.255.250 into the affected application.

The IP address 239.255.255.250 corresponds to the Simple Service Discovery Protocol (SSDP), part of the Universal Plug and Play (UPnP) architecture. When the Node.js application issues an HTTP request to this address, the underlying operating system routes the traffic to the local network segment. Devices listening on the multicast group receive the request and often respond with device metadata, XML configuration files, or internal network topology details.

In scenarios where the application processes and returns the response body to the attacker, the exploit facilitates extensive internal reconnaissance. Even in a "blind" SSRF scenario where responses are not returned, attackers measure response times to infer the presence of specific network hardware. By manipulating port numbers and protocol wrappers, attackers coerce the host system into interacting with Multicast DNS (mDNS) services on port 5353, extracting hostname mappings from the internal domain.

Impact Assessment

The impact of CVE-2025-8267 is assessed with a CVSS v4.0 base score of 8.8 (High) and a CVSS v3.1 base score of 8.2 (High). The vulnerability allows unauthorized information disclosure and internal network manipulation without requiring authentication. Because the vulnerable component is an npm package designed explicitly to block SSRF, its failure results in total bypass of the application's primary defense mechanism.

The concrete security consequences depend heavily on the internal network architecture hosting the vulnerable application. Successful exploitation grants an attacker a pivoting point within the trusted network perimeter. The attacker gains the ability to map internal IP addresses, identify vulnerable IoT devices, and interact with management interfaces that lack explicit authentication requirements under the assumption of local network safety.

The Exploit Prediction Scoring System (EPSS) currently rates this vulnerability at 0.00119, placing it in the 30.26th percentile. While active exploitation in the wild is not currently listed in CISA's Known Exploited Vulnerabilities (KEV) catalog, the public availability of the bypass methodology elevates the risk. Security teams must assume that automated scanning tools will soon incorporate IPv4 Multicast payloads into standard SSRF testing suites.

Remediation and Mitigation

The primary remediation strategy requires updating the ssrfcheck dependency to version 1.2.0 or later. Developers manage this by modifying the package.json file and executing the package manager update command. Post-update, engineering teams must verify that the lockfile reflects the patched version to ensure CI/CD pipelines do not deploy stale dependencies from a cached registry.

For environments unable to immediately patch the dependency, security engineers must implement defense-in-depth measures at the network perimeter. Egress filtering serves as the most effective compensating control. Administrators configure firewalls or cloud security groups to explicitly deny outbound traffic originating from application servers directed towards the 224.0.0.0/4 subnet. This network-level control nullifies the bypass regardless of the application's internal validation state.

Beyond immediate patching, development teams must conduct a comprehensive review of URL validation logic across all services. The failure of a single blocklist entry underscores the necessity of strict allow-listing for outbound connections wherever feasible. Additionally, teams should verify that their SSRF mitigation strategies correctly account for related edge cases, including IPv6 multicast (ff00::/8), link-local addresses (169.254.0.0/16), and Carrier-Grade NAT (100.64.0.0/10), ensuring comprehensive coverage against modern SSRF techniques.

Official Patches

GitHub AdvisoryGitHub Security Advisory detailing the SSRF bypass.
Snyk AdvisorySnyk vulnerability database entry for CVE-2025-8267.

Fix Analysis (1)

Technical Appendix

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

Affected Systems

Node.js applications utilizing ssrfcheck < 1.2.0Internal network infrastructure exposed to multicast routing (SSDP, UPnP, mDNS)

Affected Versions Detail

Product
Affected Versions
Fixed Version
ssrfcheck
felippe-regazio
< 1.2.01.2.0
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork
CVSS v4.08.8 (High)
CVSS v3.18.2 (High)
EPSS Score0.00119
Exploit StatusProof-of-Concept Available
CISA KEVNot Listed

MITRE ATT&CK Mapping

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

Server-Side Request Forgery (SSRF) occurs when a web application is fetching a remote resource without validating the user-supplied URL.

Known Exploits & Detection

GitHub GistTechnical bypass and disclosure by Liran Tal detailing the IPv4 Multicast attack vector.

Vulnerability Timeline

Initial technical disclosure and bypass report published by Liran Tal via GitHub Gist.
2024-12-25
GitHub Issue #5 opened in the ssrfcheck repository documenting the bypass.
2025-06-25
Security patch committed and released in ssrfcheck version 1.2.0.
2025-07-13
CVE-2025-8267 officially published in the National Vulnerability Database (NVD).
2025-07-28
Included in CISA's weekly vulnerability summary (SB25-216).
2025-07-28

References & Sources

  • [1]NVD Record CVE-2025-8267
  • [2]Snyk Advisory SNYK-JS-SSRFCHECK-9510756
  • [3]Fix Commit in ssrfcheck repository
  • [4]GitHub Issue #5 Documenting Bypass
  • [5]Technical Bypass Gist by lirantal
  • [6]GitHub Advisory GHSA-c2fv-2fmj-9xrx

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

•10 minutes ago•CVE-2026-70493
6.5

CVE-2026-70493: Regular Expression Denial of Service (ReDoS) in Open WebUI Knowledge Search

CVE-2026-70493 is a critical Regular Expression Denial of Service (ReDoS) vulnerability affecting Open WebUI from version 0.9.6 up to (but excluding) 0.11.0. An authenticated user can submit a custom, highly complex regular expression pattern to search files within the knowledge base. Because these expressions are compiled and executed synchronously using Python's standard backtracking re module inside an asynchronous event loop, the server becomes unresponsive. A single request is capable of stalling the entire platform, denying access to all concurrent users of the system.

Amit Schendel
Amit Schendel
0 views•7 min read
•about 1 hour ago•CVE-2026-70588
5.0

CVE-2026-70588: Stored Cross-Site Scripting via Universal Import in Ghost CMS

CVE-2026-70588 is a stored Cross-Site Scripting (XSS) vulnerability in Ghost CMS versions 5.26.0 through 6.54.0. The vulnerability exists within the Universal Import feature of the Ghost Admin interface. When processing imported content from third-party platforms such as Revue, the importer fails to sanitize user-controlled HTML tags, rich-text structured JSON, or link fields before rendering them in the Ghost Admin panel and front-end template rendering contexts.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•CVE-2026-53948
5.4

CVE-2026-53948: Stored Cross-Site Scripting via File Upload Content-Type Spoofing in Ghost

CVE-2026-53948 is a stored cross-site scripting (XSS) vulnerability in the Ghost content management system. Affected versions (v6.19.4 up to v6.21.0) trusted the client-supplied Content-Type header during file uploads via the Admin API. This allowed authenticated attackers to upload benignly-named files with executable MIME types (like text/html), executing scripts in visitor browsers when hosted on integrated cloud platforms like S3 or GCS.

Alon Barad
Alon Barad
3 views•6 min read
•about 3 hours ago•CVE-2026-70589
4.8

CVE-2026-70589: Improper Status Validation in Ghost CMS Offer Redemption

A business logic vulnerability in Ghost CMS allows unauthenticated remote users to redeem deactivated or archived promotional subscription offers by programmatically passing old offer identifiers during the checkout session initialization.

Alon Barad
Alon Barad
3 views•6 min read
•about 4 hours ago•CVE-2026-53944
5.8

CVE-2026-53944: Server-Side Request Forgery Private IP Filtering Bypass in Ghost CMS

A Server-Side Request Forgery (SSRF) vulnerability exists in the Ghost content management system from version 6.0.9 up to, but not including, 6.21.1. The flaw resides in the 'request-external.js' module, where the IP address validation blocklist fails to account for fully expanded IPv4-mapped IPv6 formats. This allows unauthenticated remote attackers to bypass the private IP filter and initiate unauthorized connections to loopback services, internal subnets, or cloud instance metadata endpoints.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 5 hours ago•CVE-2026-53945
4.0

CVE-2026-53945: Time-of-Check to Time-of-Use (TOCTOU) DNS Rebinding Server-Side Request Forgery in Ghost CMS

Ghost CMS is vulnerable to Server-Side Request Forgery (SSRF) in versions 6.0.9 through 6.21.1. Due to a Time-of-Check to Time-of-Use (TOCTOU) race condition in its outbound fetch validation logic, an attacker can bypass IP blocklists via DNS Rebinding. This allows unauthorized interaction with private networks and local services.

Amit Schendel
Amit Schendel
3 views•7 min read