「Ubuntu 16.04 - 20.04」と「Linux Mint 18.1」で修正しました。
概要
2021年1月26日(現地時間)、sudoにおけるヒープベースのバッファオーバーフローの脆弱性(CVE-2021-3156)に関する情報が公開されました。sudoersファイル(通常は/etc/sudoers配下)が存在する場合に、脆弱性を悪用することにより、ローカルユーザがrootに権限昇格する可能性があります。
Sudo
Buffer overflow in command line unescaping
https://www.sudo.ws/alerts/unescape_overflow.html
なお、本脆弱性を発見したQualys社より、脆弱性の技術的な解説や脆弱性を実証する動画が公開されています。今後、脆弱性を悪用する実証コードなどが公開され、攻撃の中で権限昇格に悪用される可能性もあるため、影響を受けるシステムを利用している場合は、早急に対策を実施することを推奨します。
(コピペ元): https://www.jpcert.or.jp/at/2021/at210005.html
自身のバージョンや、脆弱性の有無の確認方法
まずは、現状把握。
端末から以下のコマンドを入力すれば確認可能。
bash:~$ sudoedit -s /
usage: sudoedit [-AknS] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ...
bash:~$ |
と出れば今回の脆弱性の対象じゃないかアップデート済みなので大丈夫です。
以下のどちらかを試した結果がこのようになれば脆弱性が存在するままでHeap-Based Buffer Overflowの餌食に、、、
bash:~$ sudoedit -s /
sudoedit: /: not a regular file
bash:~$ |
bash:~$ sudoedit -s '01234567890123456789\'
malloc(): corrupted top size
zsh: abort (core dumpe) sudoedit -s '01234567890123456789\'
bash:~$ |
Qualys社は、"sudoedit -s /"コマンドを実行し、"sudoedit:"から始まるエラーが表示されると脆弱性の影響を受け、"usage:"から始まるエラーが表示されると影響を受けない、という情報を公開しています。
本脆弱性の対象
- sudo バージョン 1.8.2 から 1.8.31p2
- sudo バージョン 1.9.0 から 1.9.5p1
バージョン確認
bash:~$ bash -c sudo --version
Sudo version 1.9.5p2
Sudoers policy plugin version 1.9.5p2
#...(略)
bash:~$ |
対策
各ディストリビュータより、本脆弱性を修正したバージョンが公開されています。各ディストリビュータの情報などを参考に。
確認できた範囲では、Ubuntu LTS(16.04, 18.04, 20.04)と Ubuntu20.10 と LinuxMint(18.1) ではもうすでにapt update && apt upgrade -y
コマンドで修正されたSudoにアップデートされる。
参考元
sudoの脆弱性(CVE-2021-3156)に関する注意喚起
https://www.jpcert.or.jp/at/2021/at210005.html
CVE-2021-3156: Heap-Based Buffer Overflow in Sudo (Baron Samedit) - Qualys, community
https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit
Youtube - 『Patch sudo NOW! CVE-2021-3156』John Hammond
https://www.youtube.com/watch?v=2_ZaNBl6qNo