CWEweakness
CWE-918 Server-Side Request Forgery
- Alternate terms
- XSPA, SSRF
- Abstraction
- Base
- Structure
- Simple
- Status
- Incomplete
- Languages
- Not Language-Specific
- CWE version
- 5.0
Description
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Common consequences
• Confidentiality: Read Application Data
• Integrity: Execute Unauthorized Code or Commands
• Access Control: Bypass Protection Mechanism — By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
Potential mitigations
• [Implementation, Operation] If there is a known list of applications, IP, hostname, and/or domains to which the product is allowed to communicate, then use allowlists to ensure that outgoing requests are restricted to these known entities. The allowlists could be in the application code or possibly enforced by firewalls or network segmentation [REF-1511].
• [Implementation, Operation] If the product is expected to be able to connect to arbitrary IP addresses or domains, consider using a denylist that includes private network addresses, internal domain names, etc. The denylist could be in the application code or possibly enforced by firewalls or network segmentation [REF-1511].
• [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue."
Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.
When constructing outgoing requests from input strings, use stringent allowlists that limit the character set based on the expected value of the parameter in the request. This will indirectly limit the scope of an attack, but this technique is less important than proper output encoding and escaping.
Detection methods
• Automated Static Analysis: Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)
Observed examples
• CVE-2026-33626: SSRF in LLM toolkit accesses arbitrary URLs for images, as exploited in the wild in April 2026 to conduct port scanning [REF-1519]
• CVE-2024-3095: SSRF in LLM application development framework because the URL retriever allows connections to local addresses using a crafted Location header
• CVE-2023-32786: Chain: LLM integration framework has prompt injection
(CWE-1427) that allows an attacker to force the service to retrieve
data from an arbitrary URL, essentially providing SSRF (CWE-918) and
potentially injecting content into downstream tasks.
• CVE-2021-26855: Server Side Request Forgery (SSRF) in mail server, as exploited in the wild per CISA KEV.
• CVE-2021-21973: Server Side Request Forgery in cloud platform, as exploited in the wild per CISA KEV.
• CVE-2016-4029: Chain: incorrect validation of intended decimal-based IP address format (CWE-1286) enables parsing of octal or hexadecimal formats (CWE-1389), allowing bypass of an SSRF protection mechanism (CWE-918).
• CVE-2002-1484: Web server allows attackers to request a URL from another server, including other ports, which allows proxied scanning.
• CVE-2004-2061: CGI script accepts and retrieves incoming URLs.
• CVE-2010-1637: Web-based mail program allows internal network scanning using a modified POP3 port number.
• CVE-2009-0037: URL-downloading library automatically follows redirects to file:// and scp:// URLs
Related
Attack pattern · CAPEC (1)
- CAPEC-664 Server Side Request Forgery attack pattern
Observed example · CVE (10)
- CVE-2026-33626 LMDeploy is a toolkit for compressing, deploying, and serving large language models. vulnerability
- CVE-2024-3095 A Server-Side Request Forgery (SSRF) vulnerability exists in the Web Research Retriever component of langchain-ai/langchain version 0.1.5. vulnerability
- CVE-2023-32786 In Langchain through 0.0.155, prompt injection allows an attacker to force the service to retrieve data from an arbitrary URL, essentially… vulnerability
- CVE-2021-26855 Microsoft Exchange Server Remote Code Execution Vulnerability vulnerability
- CVE-2021-21973 The vSphere Client (HTML5) contains an SSRF (Server Side Request Forgery) vulnerability due to improper validation of URLs in a vCenter… vulnerability
- CVE-2016-4029 WordPress before 4.5 does not consider octal and hexadecimal IP address formats when determining an intranet address, which allows remote… vulnerability
- CVE-2010-1637 The Mail Fetch plugin in SquirrelMail 1.4.20 and earlier allows remote authenticated users to bypass firewall restrictions and use… vulnerability
- CVE-2009-0037 The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location… vulnerability
- CVE-2004-2061 RiSearch 1.0.01 and RiSearch Pro 3.2.06 allows remote attackers to use the show.pl script as an open proxy, or read arbitrary local files,… vulnerability
- CVE-2002-1484 DB4Web server, when configured to use verbose debug messages, allows remote attackers to use DB4Web as a proxy and attempt TCP connections… vulnerability
Child of · CWE (2)
Referenced by CAPEC · weakness (1)
- CAPEC-664 Server Side Request Forgery attack pattern
Referenced by CVE · weakness (4,012)
- CVE-2026-102590 IBM Langflow OSS 1.0.0 through 1.12.3 could allow a remote authenticated attacker to obtain sensitive information due to a server-side… vulnerability
- CVE-2026-104310 IBM Langflow OSS 1.0.0 through 1.12.3 could allow a remote authenticated attacker to obtain sensitive information due to a server-side… vulnerability
- CVE-2026-104315 IBM Langflow OSS 1.0.0 through 1.12.3 is vulnerable to server-side request forgery (SSRF). vulnerability
- CVE-2026-104331 IBM Langflow OSS 1.0.0 through 1.12.3 is vulnerable to server-side request forgery (SSRF). vulnerability
- CVE-2026-111418 A server-side request forgery (SSRF) vulnerability exists in the Foxit official website’s HTML-to-PDF conversion service. vulnerability
- CVE-2026-113688 Server-side request forgery in the SmartIT URL-based attachment feature of BMC IT Service Management Suite versions 25.3.01, 25.4.01, and… vulnerability
- CVE-2026-118586 A security flaw has been discovered in dfm feedfinder2 up to 0.0.4. vulnerability
- CVE-2026-118989 WebToffee Product Import Export for WooCommerce 2.5.1 before 2.6.8 contains a server-side request forgery vulnerability in… vulnerability
- CVE-2026-119122 Crawl4AI before 0.9.5 contains a blind server-side request forgery vulnerability in the Docker server that allows API clients to bypass the… vulnerability
- CVE-2026-71569 Server-Side Request Forgery (SSRF) vulnerability in Apache Camel A2A component. vulnerability
- CVE-2025-14260 Due to the improper implementation of access control rules, the WSO2 product accepts user-supplied input related to resource location… vulnerability
- CVE-2026-115225 The Customer Engagement System WordPress plugin before 2.0.2 does not restrict access to its MailChimp interest-group lookup or validate… vulnerability
- CVE-2026-118376 WeKnora before 0.8.2 contains a server-side request forgery vulnerability in isRestrictedIP() that misclassifies NAT64-prefixed IPv6… vulnerability
- CVE-2026-118577 A vulnerability was identified in maotoumao MusicFreeDesktop 0.0.6/0.0.7/0.0.8. vulnerability
- CVE-2026-118659 Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. vulnerability
- CVE-2026-118660 Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. vulnerability
- CVE-2026-118679 n8n before 1.123.83, 2.41.4, and 2.42.1 contains a server-side request forgery vulnerability in the Slack Trigger webhook that allows… vulnerability
- CVE-2026-13451 A flaw was found in KServe. vulnerability
- CVE-2026-57448 Blombooru is a self-hosted personal booru for organizing and tagging private image collections. vulnerability
- CVE-2026-61529 Endatix is a self-hosted form and survey management platform with a headless API. vulnerability
- CVE-2026-61572 AVideo is a video-sharing Platform. vulnerability
- CVE-2026-67077 HCL BigFix AEX is affected by a Server-Side Request Forgery vulnerability, which could allow an attacker to cause the application to send… vulnerability
- CVE-2026-88967 A user with query access to an Azure Monitor data source in Grafana can cause server-side requests to an attacker-controlled endpoint that… vulnerability
- CVE-2026-116678 Vaultwarden is a Bitwarden-compatible server written in Rust. vulnerability
- CVE-2026-116680 HomeBox is a home inventory and organization system. vulnerability
- CVE-2026-116686 The Model Context Protocol Python SDK is the official Python SDK for Model Context Protocol servers and clients. vulnerability
- CVE-2026-116826 YesWiki before 4.7.0 contains a server-side request forgery vulnerability in DuplicationManager::downloadFile() that allows authenticated… vulnerability
- CVE-2026-116827 YesWiki before 4.7.0 contains a server-side request forgery vulnerability in the Bazar CSV import copyUrlToLocalFile() function that allows… vulnerability
- CVE-2026-117471 Psono Server CE && EE versions 0.1.0 through 7.2.3 accepted a user-controlled host when configuring a personal Duo device and passed it to… vulnerability
- CVE-2026-117565 Artalk before 2.10.1 contains an unauthenticated server-side request forgery vulnerability that allows remote attackers to make the server… vulnerability
Referenced by CWE · has member (5)
- CWE-1337 Weaknesses in the 2021 CWE Top 25 Most Dangerous Software Weaknesses view
- CWE-1387 Weaknesses in the 2022 CWE Top 25 Most Dangerous Software Weaknesses view
- CWE-1425 Weaknesses in the 2023 CWE Top 25 Most Dangerous Software Weaknesses view
- CWE-1430 Weaknesses in the 2024 CWE Top 25 Most Dangerous Software Weaknesses view
- CWE-1435 Weaknesses in the 2025 CWE Top 25 Most Dangerous Software Weaknesses view
Referenced by OWASP · mapped cwe (4)
- A01:2025 Broken Access Control Top 10 2025
- API7:2023 Server Side Request Forgery API Security Top 10 2023
- A10:2021 Server-Side Request Forgery (SSRF) Top 10 2021
- CS-Server_Side_Request_Forgery_Prevention Server-Side Request Forgery Prevention Cheat Sheet Cheat Sheet