◆概要
2022 年 7 月に、サーバ管理ツールである Webmin に、遠隔からの管理者権限での任意のコードが実行可能となる脆弱性が公開されています。攻撃者が脆弱性の悪用に成功した場合は、脆弱な Webmin が稼働しているサーバへの管理者権限での侵入が可能となります。ソフトウェアのアップデートにより対策してください。
◆分析者コメント
今回公開された脆弱性は、単純な OS コマンドインジェクションが可能となる脆弱性ですが、ソフトウェアをアップデートする権限を持つアカウントでの管理用コンソールへのログインが前提条件です。「Software Package Updates」という権限を持つアカウントの認証情報を強化するか、必要なければアカウントから権限をはく奪することでも、当該脆弱性の影響を受ける危険性を低減できます。
◆深刻度(CVSS)
9.8
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2022-36446&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST
◆影響を受けるソフトウェア
Webmin のバージョン 1.997 未満が当該脆弱性の影響を受けると報告されています。
◆解説
Linux サーバ管理ツールである Webmin に、入力された文字列のエスケープ処理の不備に起因する脆弱性が報告されています。
脆弱性は、Webmin がインストールされた Linux サーバのソフトウェアを遠隔からアップデートするための機能に存在します。脆弱性が存在する Webmin では、ソフトウェアアップデートを要求する文字列のエスケープ処理をしていないため、OS コマンドインジェクションによる root 権限での遠隔コード実行が可能です。脆弱性の原因であるコード apt-lib.pl の修正差分を GitHub から確認すると、脆弱なバージョンでは、エスケープ処理された文字列を格納している変数 $update に含まれている文字の「\」を除去する処理があるためエスケープ処理が解除されてしまっていますが、「\」を除去する処理を削除して脆弱性に対策していることが確認できます。
+ local $uicmd = "$apt_get_command -y ".($force ? " -f" : "")." install $update";
$update = join(" ", map { quotemeta($_) } split(/\s+/, $update));
- $update =~ s/\\(-)|\\(.)/$1$2/g;
local $cmd = "$apt_get_command -y ".($force ? " -f" : "")." install $update";
◆対策
Webmin のバージョンを 1.997 およびそれよりも新しいバージョンに更新してください。また、「Software Package Updates」権限を持つアカウントの認証情報を強化することで脆弱性の影響を低減できます。
◆関連情報
[1] Webmin 公式 GitHub
https://github.com/webmin/webmin/commit/13f7bf9621a82d93f1e9dbd838d1e22020221bde
[2] Medium
https://medium.com/@emirpolat/cve-2022-36446-webmin-1-997-7a9225af3165
[3] National Vulnerability Database (NVD)
https://nvd.nist.gov/vuln/detail/CVE-2022-36446
[4] CVE Mitre
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-36446
◆エクスプロイト
以下の Web サイトにて、当該脆弱性を悪用して対象ホストへの侵入を試みる Metasploit 用のエクスプロイトコードが公開されています。
GitHub - rapid7/metasploit-framework
https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/linux/http/webmin_package_updates_rce.rb
#--- で始まる行は筆者コメントです。
2022 年 7 月に、サーバ管理ツールである Webmin に、遠隔からの管理者権限での任意のコードが実行可能となる脆弱性が公開されています。攻撃者が脆弱性の悪用に成功した場合は、脆弱な Webmin が稼働しているサーバへの管理者権限での侵入が可能となります。ソフトウェアのアップデートにより対策してください。
◆分析者コメント
今回公開された脆弱性は、単純な OS コマンドインジェクションが可能となる脆弱性ですが、ソフトウェアをアップデートする権限を持つアカウントでの管理用コンソールへのログインが前提条件です。「Software Package Updates」という権限を持つアカウントの認証情報を強化するか、必要なければアカウントから権限をはく奪することでも、当該脆弱性の影響を受ける危険性を低減できます。
◆深刻度(CVSS)
9.8
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2022-36446&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST
◆影響を受けるソフトウェア
Webmin のバージョン 1.997 未満が当該脆弱性の影響を受けると報告されています。
◆解説
Linux サーバ管理ツールである Webmin に、入力された文字列のエスケープ処理の不備に起因する脆弱性が報告されています。
脆弱性は、Webmin がインストールされた Linux サーバのソフトウェアを遠隔からアップデートするための機能に存在します。脆弱性が存在する Webmin では、ソフトウェアアップデートを要求する文字列のエスケープ処理をしていないため、OS コマンドインジェクションによる root 権限での遠隔コード実行が可能です。脆弱性の原因であるコード apt-lib.pl の修正差分を GitHub から確認すると、脆弱なバージョンでは、エスケープ処理された文字列を格納している変数 $update に含まれている文字の「\」を除去する処理があるためエスケープ処理が解除されてしまっていますが、「\」を除去する処理を削除して脆弱性に対策していることが確認できます。
+ local $uicmd = "$apt_get_command -y ".($force ? " -f" : "")." install $update";
$update = join(" ", map { quotemeta($_) } split(/\s+/, $update));
- $update =~ s/\\(-)|\\(.)/$1$2/g;
local $cmd = "$apt_get_command -y ".($force ? " -f" : "")." install $update";
◆対策
Webmin のバージョンを 1.997 およびそれよりも新しいバージョンに更新してください。また、「Software Package Updates」権限を持つアカウントの認証情報を強化することで脆弱性の影響を低減できます。
◆関連情報
[1] Webmin 公式 GitHub
https://github.com/webmin/webmin/commit/13f7bf9621a82d93f1e9dbd838d1e22020221bde
[2] Medium
https://medium.com/@emirpolat/cve-2022-36446-webmin-1-997-7a9225af3165
[3] National Vulnerability Database (NVD)
https://nvd.nist.gov/vuln/detail/CVE-2022-36446
[4] CVE Mitre
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-36446
◆エクスプロイト
以下の Web サイトにて、当該脆弱性を悪用して対象ホストへの侵入を試みる Metasploit 用のエクスプロイトコードが公開されています。
GitHub - rapid7/metasploit-framework
https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/linux/http/webmin_package_updates_rce.rb
#--- で始まる行は筆者コメントです。