sudoの脆弱性情報(Important: CVE-2019-14287)と新バージョン(1.8.28)

こんにちは。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で公開しました。



関連ニュース

本件の発生条件(何故「ALL」が絡んだ場合のみ発生するのか)をソースコードレベルで追いかけた記事を@ITで公開しました。”ALL”が絡んだ場合のみ発生する理由を論理的に納得したい方は、こちらの@IT記事をご参照下さい。


Priority

CVE番号影響するバージョンPriorityCVSS Score / CVSS Vector
CVE-2019-14287sudo < 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 SatelliteKatello、Spacewalk等を使うと管理が便利でしょう。


セキュリティ系連載案内

セミナー情報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トラック) も用意しております。


タイトルとURLをコピーしました