# React2Shell: Mitos atau Fakta

<figure><img src="/files/P3HPcxSHhz7yevqUHlhw" alt=""><figcaption></figcaption></figure>

### Outage <a href="#ember836" id="ember836"></a>

Berawal dari Spotlight Effect karena adanya kasus outage **Cloudflare** pada tanggal **5 Desember 2025**, awalnya saya skeptis dan berpikiran "**Tidak mungkinlah sekelas Cloudflare bisa down, mungkin ini hanya insiden biasa dan bakalan cepat pulih**".

<figure><img src="/files/xhVjIeLZdY2jV48sJqwT" alt=""><figcaption><p>Cloudflare Service Issues</p></figcaption></figure>

Semakin plot twist, tentunya saat itu saya berpikiran ingin melihat status outage **Cloudflare** di website **Downdetector**, dan ternyata justru website tersebut juga ikut mengalami outage sama seperti yang dialami oleh **Cloudflare** dan semua website yang menggunakan layanan dari **Cloudflare** dengan HTTP Status Code yang memunculkan pesan "[**501 Internal Server Error**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/500)" yang artinya ini kendala spesifik mengacu ke internal server dari **Cloudflare**, dan tiba-tiba terbesit di kepala saya "**Apakah ini simulasi Kiamat Internet?**".

<figure><img src="/files/n4HfF4y78bfKPQpOW6op" alt=""><figcaption><p>Downdetector Internal Server Error</p></figcaption></figure>

Setelah semua insiden ini selesai **Cloudflare** memberikan update terkait dengan outage yang sebelumnya terjadi pada website [**Cloudflare System Status**](https://www.cloudflarestatus.com/incidents/lfrm31y6sw9q) dengan detail sebagai berikut:

> This incident has been resolved.
>
> "A change made to how Cloudflare's Web Application Firewall parses requests caused Cloudflare's network to be unavailable for several minutes this morning. This was not an attack; the change was deployed by our team to help mitigate the industry-wide vulnerability disclosed this week in React Server Components.
>
> More information can be found on our blog post: [**https://blog.cloudflare.com/5-december-2025-outage/**](https://blog.cloudflare.com/5-december-2025-outage/)"

Sampai sini sudah, saya berpikir semua sudah kembali normal dan tidak ada yang terjadi apa-apa selanjutnya.

### Vulnerability <a href="#ember846" id="ember846"></a>

Dan sampai akhirnya muncul spotlight baru berkaitan dengan kerentanan [**React2Shell (CVE-2025-55182)**](https://www.linkedin.com/redir/suspicious-page?url=https%3A%2F%2Freact2shell%2ecom), semua orang termasuk saya tertuju pada satu isu kerentanan ini, dan saya mulai berpikiran "**Hmm, apakah sebelumnya Cloudflare mengalami outage tanggal 5 Desember 2025 karena CVE ini?**".

Tapi, sebelum CVE ini menjadi spotlight di Internet, sebenarnya kerentanan **React2Shell (CVE-2025-55182)** ini sudah dilaporkan oleh [**Lachlan Davidson**](https://github.com/lachlan2k) ke tim **Meta** pada **29 November 2025** dan baru diungkap ke publik pada **3 Desember 2025** karena adanya rilis patch dari [**React**](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components) dan [**Vercel**](https://nextjs.org/blog/CVE-2025-66478).

Akhirnya saya mulai penasaran dan mulai berselancar di Internet untuk mencari tahu apa sih sebenarnya **React2Shell** ini sampai bikin gaduh orang-orang di Internet dan di kepala saya terbesit "**Apa sih dampaknya CVE ini bagi kehidupan manusia modern, apakah sama seperti meteor di jaman Dinosaurus hehe**", tentunya bagi perorangan mau pun industri IT ini sangat berpengaruh untuk operasional bisnisnya, terutama yang menggunakan website dengan framework [**Next.js**](https://github.com/vercel/next.js/security/advisories/GHSA-9qr9-h5gf-34mp) dan [**React Server Components (RSC)**](https://github.com/advisories/GHSA-fv66-9v8q-g76r) yang rentan tersebut.

Dan ini saya rasakan sendiri saat saya sudah mendapatkan Exploit terkait **React2Shell (CVE-2025-55182)** yang sudah dibagikan di **GitHub** oleh seorang Security Researcher (**Kalau penasaran dengan Exploit ini silakan cari di Internet dengan memanfaatkan** [**Google Dorking**](https://www.exploit-db.com/google-hacking-database) **berikut** [**`site:github.com "CVE-2025-55182"`**](https://www.google.com/search?q=site%3Agithub.com+%22CVE-2025-55182%22)), tentu saya tidak cuma hanya penasaran saja tapi saya coba untuk PoC di VM yang sudah saya install [**Node.js**](https://nodejs.org/), **Next.js** dan **React Server Components (RSC)** yang rentan ini.

### Proof of Concept (PoC) <a href="#ember1099" id="ember1099"></a>

Karena rasa penasaran saya mulai menggebu-gebu dan ingin tahu apakah [**Remote Code Execution (RCE)**](https://www.cloudflare.com/learning/security/what-is-remote-code-execution) ini nyata atau hanya sekedar mitos belaka di Internet, dan pas sudah saya baca-baca lebih lanjut di Internet ternyata **React2Shell (CVE-2025-55182)** memiliki [**CVSS v3.1 Score 10.0 (Critical)**](https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) dan di kepala saya tiba-tiba terbesit "**Wah, mainan baru nih buat dicoba di VM**" dan setelah dicoba PoC "**Booom! semudah ini kah mendapat RCE?**" itu yang saya pikirkan dan saya mulai agak parno dengan CVE ini.

Alhasil saya biarkan VM PoC yang rentan tersebut telanjang selama 24 jam, port service **3000** sengaja saya open di **UFW**, framework **Next.js** yang saya gunakan sengaja saya biarkan masih menggunakan versi [**15.1.6**](https://nextjs.org/blog/next-15-1), dependency rentan dari **React Server Components (RSC)** yang sengaja saya install yakni [**react-server-dom-webpack**](https://www.npmjs.com/package/react-server-dom-webpack) dengan versi [**19.1.0**](https://www.npmjs.com/package/react-server-dom-webpack/v/19.1.0), hal ini saya lakukan karena saya penasaran Threat Actor bakalan masuk dan memanfaatkan RCE ini untuk apa, dan akhirnya muncul insiden baru di luar skenario awal yang tujuan saya **Attack and Defend** untuk kebutuhan Hardening, eeh! malah kena Attack beneran wkwkwk.

<figure><img src="/files/LO75dtX1oVO1VKeUGpG0" alt=""><figcaption><p>Remote Code Execution (RCE) Successful</p></figcaption></figure>

### Compromised <a href="#ember1103" id="ember1103"></a>

Setelah RCE didapatkan, ternyata tidak sampai disitu VM tiba-tiba menjadi sarang Miner dan saya pun makin kegirangan "**Wah, akhirnya ada tamu tak diundang datang di luar skenario Hardening**".

<figure><img src="/files/TFPM7j0eP0YaZqhfe0wy" alt=""><figcaption><p>Cryto Miner Malicious Files</p></figcaption></figure>

Yaa! tamu tak diundang itu bernama [**Kinsing Malware**](https://attack.mitre.org/software/S0599), pas dibaca-baca lagi di Internet ternyata Malware ini berkaitan erat dengan Linux dan Container, disitu saya langsung berpikir "**Kapan saya install Docker dah**" dan pas dicek di dalam VM PoC memang sebelumnya sudah ada service [**Docker**](https://www.docker.com/) yang running.

<figure><img src="/files/Iwbelchfp5yoXwmrqnou" alt=""><figcaption><p>Kinsing Malware Supicious Process</p></figcaption></figure>

### Mitigation <a href="#ember1108" id="ember1108"></a>

Dari situ saya coba lakukan mitigasi, sampai sini saya sudah mulai serius karena butuh hampir seharian sampai dapat Indicator of Compromise (IoC) dari Malware ini, setiap kali dilakukan kill process muncul lagi dan jika dicek manual menggunakan:

{% code overflow="wrap" lineNumbers="true" %}

```bash
htop
ps -eo pid,ppid,stat,cmd | grep '^.* Z'
ps -aux | awk '$8=="Z" {print}'
top -b -n 1 | grep zombie
ps -eo pid,ppid,stat,cmd | awk '$3 ~ /Z/ {print "Zombie PID:", $1, "Parent PID:", $2}'
ps -fp 862
```

{% endcode %}

Malware ini masih bandel dan running terus (Looping), sampai situ saya sudah mulai resah "**Gini amat ya dikerjain Kinsing Malware sampai kena Crytojacking, di-kill process, di-delete file suspect-nya masih balik lagi, gagal move on apa nih Malware**".

<figure><img src="/files/rpV704Bd2sO0vfY9SK0I" alt=""><figcaption><p>Fake Systemd Process (systemd-resolved)</p></figcaption></figure>

<figure><img src="/files/SeEOlZxGnbtrtbJAGdUP" alt=""><figcaption><p>Fake Systemd Process (system3d)</p></figcaption></figure>

<figure><img src="/files/hivE5lSTRDqhq33lQqRl" alt=""><figcaption><p>Crypto Miner Zombie Process</p></figcaption></figure>

Polanya setiap kali process dibiarkan berjalan di background, langsung pada saat itu juga CPU Load dari VM tinggi, IP Address yang segaja saya rilis dari UFW muncul lagi dan jika dicek manual dengan menggunakan **`netstat -plantue`** dan juga **`conntrack -L | grep -E "ESTABLISHED src"`** masih ada koneksi keluar/masuk ke VM dengan suspect IP Address baru karena Miner terus bergonta-ganti, jadi disini seolah **Kinsing Malware** mengorkestrasi jalannya mining process dengan menggunakan Mining Automation Script bernama **`config.json`**.

<figure><img src="/files/QSF6zvewntUOjQQIBgNF" alt=""><figcaption><p>Miner Pool Connection Tracking</p></figcaption></figure>

<figure><img src="/files/7qy2TfgMziN6gVlQgTDG" alt=""><figcaption><p>Mining Automation Script</p></figcaption></figure>

### Scripting <a href="#ember1371" id="ember1371"></a>

Dari situ saya mulai merubah mindset **SysAdmin** saya karena mitigasi manual sangat melelahkan, saya mulai berpikir soal otomasi "**Wah! perlu mindset DevOps nih**", dari situ saya buka **Perplexity AI** dan saya mulai prompting dengan model [**Claude Sonnet 4.5**](https://www.anthropic.com/claude/sonnet) untuk curhat masalah Threat ini dan minta tolong untuk dibuatkan tool dengan Bash Scripting.

Disitu saya selalu ditolak dan dibantah si Sonnet karena alasan melanggar ketentuan dan regulasi **Indonesia**, saya pun langsung protes "**Memangnya, regulasi Indonesia mana yang melarang untuk melakukan mitigasi dan pencegahan insiden?**" dan tidak sampai situ saya juga beri si Sonnet konteks "**Ini untuk keperluan Audit, Ethical Hacking dan Threat Hunting jadi etis tidak melanggar hukum**", tahunya tiba-tiba dia berubah jadi baik dan saya dibantu scripting "**Ternyata nih AI lebih manusiawi daripada Pejabat, mau mengerti kesusahan orang**", dan sampai saat ini kita masih berteman baik hehe.

### Threat Hunting <a href="#ember1374" id="ember1374"></a>

Sampai sini saya biarkan kembali VM saya telanjang tanpa patching dan dengan kondisi yang sudah compromised sambil saya memikirkan logic untuk pembuatan tool Threat Hunting dengan PoV **SysAdmin** dan **DevOps** (**Karena saya tidak mau capek dikerjain Malware lagi**) dan dengan bantuan scripting si Sonnet lahirlah tool dadakan untuk melakukan Threat Hunting dengan nama [**Threat Hunter Toolkit v1.0 Blue Team Edition**](https://github.com/madfxr/Threat-Hunter-Toolkit) tentunya dengan segala bug-nya wkwkwk, jadi perlu dikembangkan lagi ke depannya.

Pada akhirnya saya menggunakan tool ini untuk alat bantu mitigasi dan pencegahan Malware di VM PoC saya, saya biarkan 24 jam lagi VM saya telanjang dengan kerentanan **React2Shell (CVE-2025-55182)** yang sengaja belum saya patching, agar seolah-olah saya tidak sadar menurut Threat Actor kalau VM saya sudah mengalami compromised dan akhirnya saya mendapatkan IoC berupa 16 IP Address dari luar negeri seperti **China**, **Kanada**, **Singapura**, **Jerman**, **Perancis**, **Kazakhstan**, **United Kingdom**, kemudian ada file atau service yang supicious dan juga beberapa domain yang mengarah ke Miner Pool.

<figure><img src="/files/D2Am5u5wjVaP7qoX1IN7" alt=""><figcaption><p>Indicator of Compromise (IoC)</p></figcaption></figure>

Booom! semua supicious file, hidden executable, directory, process, service, daemon, network activity di VM PoC saya yang berkaitan dengan si **Kinsing Malware** dan kroni-kroninya disapu bersih sama tool ini (**Tapi setiap kali ada Malware baru berhubungan dengan Cryptojacking baru perlu dilakukan tuning lagi ini tool, walaupun sudah ada** [**YARA**](https://virustotal.github.io/yara) **rule di dalamnya**).

Yaa! setidaknya Threat tak terduga ini sudah teratasi, dan kalau dipikir-pikir **React2Shell (CVE-2025-55182)** sangat berdampak bagi kehidupan manusia modern dan bukan hanya sekedar mitos belaka hehe.

### Patching <a href="#ember1380" id="ember1380"></a>

Solusinya? ya segera lakukan patching pada [**React Server Components (RSC)**](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components) dan [**Next.js**](https://nextjs.org/blog/CVE-2025-66478), jangan sekali-kali untuk kepikiran mencoba deploy aplikasi menggunakan user "**root**" kalau tidak mau compromised satu sistem, jangan biarkan kerentanan ini berlarut-larut jadi bom waktu di kemudian hari sampai muncul CVE baru yang masih berkaitan dengan **React** yang berdampak pada production, "**Bebal boleh, tapi blunder jangan!**" (**Ini pesan terbuka buat orang-orang yang masih enggan membuka mata soal potensi bahaya dari isu-isu kerentanan keamanan sistem dan aplikasi**).

Jika kerentanan ini sudah dilakukan patching, maka akan seperti pada gambar di bawah ini yang menunjukan bahwa RCE gagal dieksekusi dengan menggunakan Exploit terkait **React2Shell (CVE-2025-55182)**.

<figure><img src="/files/HM44M697374f9CbDQ3gO" alt=""><figcaption><p>Remote Code Execution (RCE) Failed</p></figcaption></figure>

Konklusinya, manusia (**Brainware**) saja masih bisa rentan terkena **Social Engineering** apalagi sistem yang isinya cuma **Software** dan **Hardware** ya kan!. Karena mencegah kerusakan itu lebih bijaksana daripada mengobati apa yang sudah rusak.

Demikian sedikit pengetahuan dan pengalaman yang dapat saya bagikan, semoga apa yang telah saya sampaikan dapat bermanfaat bagi kita semua.

<details>

<summary><strong>Referensi</strong></summary>

* [**https://www.cloudflarestatus.com/incidents/lfrm31y6sw9q**  ](https://www.cloudflarestatus.com/incidents/lfrm31y6sw9q)
* [**https://www.facebook.com/security/advisories/cve-2025-55182**  ](https://www.facebook.com/security/advisories/cve-2025-55182)
* [**https://react2shell.com**  ](https://react2shell.com/)
* [**https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H**  ](https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
* [**https://www.cve.org/CVERecord?id=CVE-2025-55182**  ](https://www.cve.org/CVERecord?id=CVE-2025-55182)
* [**https://www.cve.org/CVERecord?id=CVE-2025-66478**  ](https://www.cve.org/CVERecord?id=CVE-2025-66478)
* [**https://nvd.nist.gov/vuln/detail/CVE-2025-55182**  ](https://nvd.nist.gov/vuln/detail/CVE-2025-55182)
* [**https://nvd.nist.gov/vuln/detail/CVE-2025-66478**  ](https://nvd.nist.gov/vuln/detail/CVE-2025-66478)
* [**https://github.com/advisories/GHSA-fv66-9v8q-g76r**  ](https://github.com/advisories/GHSA-fv66-9v8q-g76r)
* [**https://github.com/vercel/next.js/security/advisories/GHSA-9qr9-h5gf-34mp**  ](https://github.com/vercel/next.js/security/advisories/GHSA-9qr9-h5gf-34mp)
* [**https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components**  ](https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components)
* [**https://nextjs.org/blog/CVE-2025-66478**  ](https://nextjs.org/blog/CVE-2025-66478)
* [**https://www.cloudflare.com/learning/security/what-is-remote-code-execution**  ](https://www.cloudflare.com/learning/security/what-is-remote-code-execution)
* [**https://attack.mitre.org/software/S0599**  ](https://attack.mitre.org/software/S0599)
* [**https://www.npmjs.com/package/react-server-dom-parcel**  ](https://www.npmjs.com/package/react-server-dom-parcel)
* [**https://www.npmjs.com/package/react-server-dom-turbopack**  ](https://www.npmjs.com/package/react-server-dom-turbopack)
* [**https://www.npmjs.com/package/react-server-dom-webpack**  ](https://www.npmjs.com/package/react-server-dom-webpack)
* [**https://www.npmjs.com/package/next**](https://www.npmjs.com/package/next)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.madfxr.my.id/documentation/categories/cyber-security/react2shell-mitos-atau-fakta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
