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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-38185 PoC — cpio 输入验证错误漏洞

Source
Associated Vulnerability
Title:cpio 输入验证错误漏洞 (CVE-2021-38185)
Description:cpio是一款用于类UNIX系统的文件备份程序。 cpio 中存在安全漏洞。允许攻击者通过精心设计的模式文件执行任意代码,因为 dstring.c ds_fgetstr 整数溢出会触发越界堆写入。
Description
ACE poc exploit for glibc cpio 2.13 through mmap chunk metadata curruption (CVE-2021-38185)
Readme
# cpiopwn (CVE-2021-38185)
This is an ACE POC of an integer overflow bug in cpio. This exploit bypasses all binary protections except full RELRO. This exploit uses cpio 2.13 and libc 2.31. Video demo: https://youtu.be/F0yKJhu7Vak 

## Running the exploit

We've provided a Kali Dockerfile to run the exploit. The same exploit should work outside the Docker container, but offsets may be different.

### Instructions
* Build the file
  * `sudo docker build -t cpiopwn .`
* Start the image and mount files
  * `sudo docker run --mount type=bind,source=$(pwd),destination=/cpiopwn -it cpiopwn /bin/bash`
* `cd cpiopwn`
* Run the exploit, which will build a pattern file with `docker_fengshui.py` and call cpio with a large number of command line arguments.
  * `python3 exploit.py`

And that's it! After building the malicious pattern file, a prompt will show up, and it will start processing commands after a little bit of time.

### Notes
The exploit may take about a minute after the prompt appears before it starts responding to commands. We've provided a video of it running to show what should happen.

Additionally, the exploit may only work on computers with at least 12 GB of RAM, as it forces cpio to read gigabytes of input. We had some issues with servers running out of RAM with previous versions of the exploit - the current version has been tested on computers with 12 and 16 GB of RAM, but not smaller.

```
    |\__/,|   (`\
  _.|o o  |_   ) )
-(((---(((--------
```
File Snapshot

[4.0K] /data/pocs/69c2eaa6db72f2d3e4f62e8e70ee59322c78f98f ├── [2.6K] docker_fengshui.py ├── [ 608] Dockerfile ├── [148K] dynsym-hacked.bin ├── [ 338] exploit.py └── [1.4K] README.md 0 directories, 5 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.