こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
10/14/2019にsudoの脆弱性情報(Important: CVE-2019-14287)と新バージョン(1.8.28)が公開されています。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
2019/10/14 13:45修正:説明にユーザ名”bob”と”sios”が混在していたので”sios”に統一しました。
2019/11/18 12:50追記:本件の発生条件(何故「ALL」が絡んだ場合のみ発生するのか)をソースコードレベルで追いかけた記事を@ITで公開しました。
[過去の関連リンク(最新5件)]
sudoに任意のコマンド実行と情報漏えいの脆弱性( CVE-2017-1000368 ) — | サイオスOSS | サイオステクノロジー
sudoに完全な特権昇格の脆弱性( CVE-2017-1000367 ) — | サイオスOSS | サイオステクノロジー
関連ニュース
本件の発生条件(何故「ALL」が絡んだ場合のみ発生するのか)をソースコードレベルで追いかけた記事を@ITで公開しました。”ALL”が絡んだ場合のみ発生する理由を論理的に納得したい方は、こちらの@IT記事をご参照下さい。
Priority
CVE番号 | 影響するバージョン | Priority | CVSS Score / CVSS Vector |
---|---|---|---|
CVE-2019-14287 | sudo < 1.8.28 | Red Hat: Important SuSE: Important | Red Hat: CVSS 7.8 / CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H SuSE: CVSS 7 Important / AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14287
- セキュリティ設定の迂回の可能性
- 本脆弱性を利用するには、他のユーザとしてsudoでコマンドを実行できるユーザ(つまり、/etc/sudoersで”ALL”でそのように設定されているユーザ)である必要があります。
sudoersで
sios ALL=(ALL) /bin/vi
と指定してある場合には、/usr/bin/idをすべてのユーザIDで実行できることになります。
sudoコマンドでは有効なユーザ名で指定する必要はなく、ユーザIDで
sios@localhost:~$ sudo -u#1234 id -u [sudo] sios のパスワード: 1234
とすれば、”id -u”がユーザID1234により実行されることで、”1234″が返ってくることになります。
しかしながら、setresuid(2)とsetreuid(2)システムコールはコマンドを実行する前にsudoが使用するuser IDを変えるため、user ID -1(或いは4294967295)を与えると値を変更しないため結果としてsios@localhost:~$ sudo -u#-1 id -u [sudo] sios のパスワード: 0
となってしまいます。これはsudoコマンドがID=-1を取り扱う前にすでにuser ID 0で実行されてしまったためです。さらに-uオプションで引き渡されたUIDはパスワードデータベースに存在しないため、PAMによるセッションモジュールも実行されません。
例えば、あるユーザが/etc/sudoersで
sios ALL=(ALL,!root) /bin/vi
となっている場合にはユーザ名”sios”はrootとして/usr/bin/viを実行できないはずですが、この”-1″を与えることで
[sios@localhost ~]$ sudo -u#-1 vi /tmp/sss
root 10491 0.0 0.1 126180 1676 pts/1 S+ 23:43 0:00 vi /tmp/sss
のようにuid=0として実行できてしまいます。
この問題は、”ALL”を使っている場合にだけ発生するため
sios localhost=(hogehoge) /bin/vi
のような場合には
[sios@localhost ~]$ sudo -u#-1 /bin/vi 残念ですが、ユーザー sios は'/bin/vi' を #-1 として localhost.localdomain 上で実行することは許可されていません。
となり、発生しません。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。
セミナー情報1
2019/10/29(火) 18:30-20:30に「「やってはイケナイ」をやってみよう 第3弾_in 大阪 」と題しましたセミナーを開催します。このセミナーでは、実際に色々な「やってはイケナイ」をデモを交えて行い、実際にどのような問題が発生するのかを確認し、その様な万が一の場合を防ぐために行っておくべき対策を紹介していきます。
また、(ゲリラ的にOSSセキュリティ技術の会の所属としてですが)先日サンディエゴで開催されましたLinux Security Summit 2019の情報共有も行う予定です。
プログラム内容と申し込みの詳細につきましては、https://sios.connpass.com/event/148268/をご覧下さい。
皆様の申込みをお待ちしております。
セミナー情報2
コンピュータセキュリティシンポジウム2019(長崎)が2019年10月21日(月) ~ 10月24日(木)で開催されます。
こちらですが、OSSセキュリティ技術の会も後援になっており、オープンソースソフトウェア(OSS)セキュリティ技術トラック(略称:OWSトラック) も用意しております。