CVE REFERENCE | HIGH SEVERITY
Active Threat9 min read

CVE-2023-32315: Openfire Authentication Bypass Leading to RCE

A path traversal authentication bypass in the Openfire XMPP server admin console that allowed unauthenticated attackers to upload malicious plugins and execute arbitrary code — with over 3,000 servers compromised before most administrators were aware

7.5
CVSS Score
3,000+
Servers compromised in wild
Pre-auth
Authentication required
Plugin upload
RCE mechanism

CVE-2023-32315 is a path traversal authentication bypass vulnerability in the Openfire XMPP messaging server admin console, affecting versions 3.10.0 through 4.7.4 and patched in May 2023. By crafting a URL path that includes a traversal sequence targeting the setup wizard, an unauthenticated attacker can access the fully functional Openfire admin console and upload a malicious plugin — a standard Openfire extension mechanism — to execute arbitrary Java code on the server. VulnCheck reported over 3,000 Openfire servers compromised in active exploitation campaigns, with cryptomining and backdoor installation as primary observed payloads.

Root Cause: Setup Wizard URL Bypass

Openfire's admin console authentication filter blocks unauthenticated access to admin pages. However, the filter does not apply to the setup wizard URL paths — these are intended to be accessible before initial configuration is complete.

CVE-2023-32315 exploits this by accessing admin console pages via a URL that includes a traversal through the setup wizard path:

`/setup/setup-s/%u002e%u002e/%u002e%u002e/plugins/install-plugin-url.jsp`

The `%u002e` encoding of the period character (`.`) causes the path traversal to bypass the authentication filter's pattern matching, while the server-side URL processing resolves the actual target path to the plugin installation page. The attacker arrives at a fully functional admin console page without any authentication.

From Authentication Bypass to Remote Code Execution

Openfire's plugin system is the bridge from authentication bypass to code execution:

1. Openfire supports plugins as standard Java JAR files containing servlets 2. The admin console's plugin installation page allows uploading plugin JARs from a file or URL 3. Openfire automatically loads and executes newly installed plugins 4. A malicious plugin can contain any Java code — attacker executes OS commands, drops files, or establishes network connections

Public PoC exploit code, published within days of disclosure, included a pre-built malicious plugin JAR that instantiates a Java webshell callable via HTTP requests to the Openfire server.

1

Identify Internet-Facing Openfire Admin Console

Openfire admin console runs on port 9090 (HTTP) or 9091 (HTTPS) by default. Many deployments expose this port directly to the internet. Attackers identify targets via Shodan or direct scanning.

2

Authentication Bypass via Setup Wizard Path Traversal

Send HTTP request to the traversal URL targeting the plugin installation page. The authentication filter is bypassed; attacker accesses the admin plugin upload functionality.

3

Malicious Plugin Upload

Upload a crafted Openfire plugin JAR containing a Java webshell servlet. The upload can be performed via file upload or by pointing the Openfire server to a URL hosting the malicious JAR.

4

Openfire Loads Plugin — Java Code Executes

Openfire's plugin system automatically loads the newly installed plugin, executing the malicious Java servlet with the privileges of the Openfire Java process.

5

Post-Exploitation: Cryptomining, Backdoor, or Lateral Movement

Observed campaigns deployed XMRig cryptominers, persistent Java backdoors, and credential harvesters. Internal network access via Openfire's connected AD integration enabled lateral movement in some cases.

Scale of Exploitation

CVE-2023-32315 saw unusually rapid and broad exploitation:

- Public PoC code was available within days of the May 2023 disclosure - VulnCheck scans identified over 3,000 compromised Openfire instances by July 2023 — servers with attacker-installed plugins visible via Shodan - Multiple independent threat actor clusters exploited the vulnerability simultaneously - Cryptomining was the most common observed payload, but espionage-focused actors also used the access for credential harvesting and internal network reconnaissance

The CVSS score of 7.5 somewhat understates the real-world risk — it reflects the requirement that the admin console be network-accessible, but does not fully capture the trivial exploit complexity (single HTTP request) and the immediate RCE outcome.

Detection

Indicators of CVE-2023-32315 exploitation:

Indicators of Compromise
ArtifactTypeSHA-256 (Truncated)
HTTP requests to /setup/setup-s/ paths containing encoded period characters (%u002e, %2e) in the URL targeting admin console pagesWeb server access log — Openfire admin console (port 9090/9091)The path traversal bypass has a distinctive URL structure; monitor admin console access logs for requests containing setup-s/ with traversal sequences
New plugin JAR files in the Openfire plugins directory not matching the standard Openfire plugin manifestFilesystem — Openfire installation directoryCompare /opt/openfire/plugins/ (or equivalent) against known-good plugin list; attacker-installed plugins appear as unexpected JARs with unrecognized names
Openfire Java process spawning unexpected child processes (sh, bash, cmd.exe, curl, wget)Process telemetry (EDR)The Openfire JVM should not spawn interactive shell processes; any such parent-child relationship indicates plugin-based code execution
HTTP requests to unexpected servlet paths on the Openfire server coinciding with plugin installation eventsWeb server access logAttacker-installed webshell plugins register new HTTP paths; new URL paths appearing in access logs after a plugin upload event indicate malicious plugin deployment

Any instance of msimg32.dll found outside C:\Windows\System32 is an active IOC. Isolate the host immediately. Full hashes and IOC lists are available via the Cisco Talos GitHub repository.

Remediation

Steps in order of priority:

Upgrade to Openfire 4.7.5 or 4.6.8 (the patched releases)

The fix adds proper authentication enforcement for all admin console paths including setup wizard routes. Versions 4.7.5 (main branch) and 4.6.8 (legacy LTS branch) contain the patch. Verify your version in the admin console under Server → Server Information.

Immediately restrict admin console port access

Openfire's admin console (ports 9090/9091) should not be internet-accessible under any circumstances. Apply firewall rules immediately restricting access to the admin console to trusted management IP ranges only. This eliminates the attack surface even on unpatched versions.

Audit installed plugins for unauthorized entries

List all installed plugins in the admin console (Plugins → Installed) and compare against your expected plugin list. Remove any plugin you did not install or do not recognize. Examine the plugin files in the filesystem for suspicious content.

Check for and remove attacker-installed webshells

Search the Openfire plugin directory for recently created JAR files. Examine JAR contents using jar -tf for unexpected class files or servlets. Remove any suspicious plugins via the admin console and delete the JAR files from the filesystem.

Rotate Openfire service account credentials and audit XMPP user accounts

If compromise is suspected, rotate the credentials for the Openfire service account and any AD integration account. Audit XMPP user accounts for unauthorized additions or privilege changes — attackers may create persistent XMPP admin accounts.

The bottom line

CVE-2023-32315 is a reminder that messaging infrastructure is enterprise security-critical infrastructure. An Openfire server with an internet-accessible admin console and a trivially bypassed authentication check became a mass-exploitation target within days of disclosure — and over 3,000 servers were compromised before most administrators had applied the patch. The lesson is operational: any admin interface should be network-restricted by default, regardless of what authentication the application itself provides. Firewalls protecting admin ports are a defense-in-depth measure that can contain entire vulnerability classes before a patch is ever applied.

Frequently asked questions

What is CVE-2023-32315?

CVE-2023-32315 is a path traversal vulnerability in the Openfire XMPP server admin console that allows unauthenticated attackers to bypass the admin authentication filter by accessing setup wizard URLs. This gives access to admin console functionality including plugin upload, which attackers exploit to install malicious plugins containing arbitrary Java code.

What is Openfire and why is it a target?

Openfire is an open-source XMPP (Jabber) messaging server widely used in enterprise environments for internal instant messaging. It is often deployed on-premises and integrated with Active Directory for authentication. Compromising an Openfire server can expose internal communications, user credentials, and provide a foothold inside the corporate network.

How do attackers achieve RCE from an authentication bypass?

Once the authentication bypass gives unauthenticated access to the Openfire admin console, attackers upload a malicious Openfire plugin — a standard JAR file containing a Java servlet. Openfire loads and executes plugins automatically, running the malicious servlet code with the privileges of the Openfire Java process. This is effectively arbitrary Java code execution on the server.

Sources & references

  1. VulnCheck — CVE-2023-32315 Analysis
  2. Ignite Realtime Security Advisory
  3. CISA Known Exploited Vulnerabilities Catalog
  4. NVD — CVE-2023-32315
Free newsletter

Get threat intel before your inbox does.

50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, weekly, no spam.

Unsubscribe anytime. We never sell your data.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals weekly.