Server-Side Request Forgery (elmah MVC)

Severity: High
Summary#

Invicti detected a Server-Side Request Forgery based on pattern matching and confirmed the vulnerability using specific ELMAH related requests.

This vulnerability can cause highly sensitive data leaks on current sessions.

Impact#
Server-Side Request Forgery allows an attacker to make local and/or remote network requests while masquerading as the target server.
 
Elmah is a powerful tool that helps developers debug and resolve problems in their applications. However, it is configured improperly on target website, and that allows attackers to gain information about requests and responses to the application. An attacker can obtain information such as:
  • Session cookies
  • Session state
  • Query string and post variables
  • Physical path of the requested file
This means that the attacker can hijack any active user's session by using their session details.
Remediation#
  • Where possible, do not use users' input for URLs.
  • If you definitely need dynamic URLs, use whitelisting. Make a list of valid, accepted URLs and do not accept other URLs.
  • Ensure that you only accept URLs those are located on the trusted domains.
In addition to above, apply the following changes in your web.config file to disable remote access to the Elmah:

<appSettings>
    <add key="elmah.mvc.requiresAuthentication" value="true" />
    <add key="elmah.mvc.allowedRoles" value="Admin" />
</appSettings>

Build your resistance to threats. And save hundreds of hours each month.

Get a demo See how it works