Home Cyber Security News Researchers Explain How SSRF Vulnerabilities Risk Java RMI Services

Researchers Explain How SSRF Vulnerabilities Risk Java RMI Services

by Abeerah Hashim
Java RMI SSRF vulnerabilities

A security researcher has explained how Java RMI services remain at risk of developing SSRF vulnerabilities. These vulnerabilities work under specific conditions, which, if met, can allow SSRF attacks. Securing backend services can effectively help alleviate the chances for such vulnerabilities.

 SSRF Vulnerabilities Risk Java RMI Services

Elaborating the details in a blog post, the researcher Tobias Neitzel has highlighted how Java RMI services remain exposed to SSRF attacks. These attacks become possible due to SSRF vulnerabilities that may develop under specific conditions.

Describing Java RMI, the researcher stated,

Java RMI is an object-oriented RPC (Remote Procedure Call) mechanism that is available by default in most Java installations. Developers can use Java RMI to create remote objects that expose their functions on the network and allow remote clients to call them. Java RMI communication relies on serialized Java objects, which makes the protocol a prime target for attackers.

Briefly, the researcher observed how SSRF attacks become possible on these services. Although, the object-oriented RPC implementation ensures secure communication between the local and remote objects, hence exhibiting resilience to SSRF. However, the threat appears due to unsecured configurations that administrators often employ on RMI.

Thus, SSRF bugs threaten the RMI service’s security under the following conditions.

1. The SSRF vulnerability needs to allow arbitrary bytes being sent to the backend service (enables attacks on default RMI components like the RMI registry, the DGC or the Activation system).
2. The SSRF vulnerability needs to return responses from the backend service and accept arbitrary bytes within them (enables attacks on all RMI endpoints including JMX and custom remote objects)

When these conditions are met, an adversary can exploit SSRF to consume the backend service just as a direct connection.

Neitzel has shared the technical details of such attacks step-by-step in his post.

Recommended Mitigations

According to the researcher, the following steps may help secure RMI services to prevent vulnerabilities.

  • Using the up-to-date Java version to avoid inherent vulnerabilities in older versions.
  • Enabling TLS protection on RMI communications as the underlying protocol communicates data in plain text.
  • Implementing user authentication.
  • Using deserialization filters while ensuring that no apps or third-party libraries perform “dangerous actions during deserialization.”

Let us know your thoughts in the comments.

You may also like

Latest Hacking News

Privacy Preference Center


The __cfduid cookie is used to identify individual clients behind a shared IP address and apply security settings on a per-client basis.

cookie_notice_accepted and gdpr[allowed_cookies] are used to identify the choices made from the user regarding cookie consent.

For example, if a visitor is in a coffee shop where there may be several infected machines, but the specific visitor's machine is trusted (for example, because they completed a challenge within your Challenge Passage period), the cookie allows Cloudflare to identify that client and not challenge them again. It does not correspond to any user ID in your web application, and does not store any personally identifiable information.

__cfduid, cookie_notice_accepted, gdpr[allowed_cookies]


DoubleClick by Google refers to the DoubleClick Digital Marketing platform which is a separate division within Google. This is Google’s most advanced advertising tools set, which includes five interconnected platform components.

DoubleClick Campaign Manager: the ad-serving platform, called an Ad Server, that delivers ads to your customers and measures all online advertising, even across screens and channels.

DoubleClick Bid Manager – the programmatic bidding platform for bidding on high-quality ad inventory from more than 47 ad marketplaces including Google Display Network.

DoubleClick Ad Exchange: the world’s largest ad marketplace for purchasing display, video, mobile, Search and even Facebook inventory.

DoubleClick Search: is more powerful than AdWords and used for purchasing search ads across Google, Yahoo, and Bing.

DoubleClick Creative Solutions: for designing, delivering and measuring rich media (video) ads, interactive and expandable ads.



The _ga is asssociated with Google Universal Analytics - which is a significant update to Google's more commonly used analytics service. This cookie is used to distinguish unique users by assigning a randomly generated number as a client identifier. It is included in each page request in a site and used to calculate visitor, session and campaign data for the sites analytics reports. By default it is set to expire after 2 years, although this is customisable by website owners.

The _gat global object is used to create and retrieve tracker objects, from which all other methods are invoked. Therefore the methods in this list should be run only off a tracker object created using the _gat global variable. All other methods should be called using the _gaq global object for asynchronous tracking.

_gid works as a user navigates between web pages, they can use the gtag.js tagging library to record information about the page the user has seen (for example, the page's URL) in Google Analytics. The gtag.js tagging library uses HTTP Cookies to "remember" the user's previous interactions with the web pages.

_ga, _gat, _gid