プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

スポンサーサイト このエントリーをはてなブックマークに追加

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)

man-pages-3.69 released (execveのEAGAIN) このエントリーをはてなブックマークに追加

man pages 3.69 がリリースされたようです。
毎回関係者に連絡くれるMichaelえらいなー

今回のハイライトは execveのEAGAINエラーについての追記。

http://man7.org/linux/man-pages/man2/execve.2.html

で、EAGAINで検索するといいと思う。これは何をいっているかというと、典型的には以下のセキュリティーホールに
対処するための修正が kernel 3.1 で入ったということ。

・Linuxにおいてユーザーごとのプロセス数制限はRLIMIT_NPROCで表現される
・UIDはsetuidと(SUIDされた実行ファイルへの)execveによって変更されうる
・権限分離のため 1)SUIIDされた実行ファイルをexec、 2)特権を必要とする処理が終わったらすぐさまsetuidにて権限放棄 というプログラムが広く使われている
・3.0以前はexecveはRLIMIT_NPROC未チェック、setuidではチェックしてた
・ところが、世の中にはsetuidの返り値をチェックしてないあほなプログラムがたくさんある。そういうプログラムがRLIMIT_NPROC踏むように誘導すると、権限放棄が失敗したまま移行のすべての処理がrootで走り続けてしまうので、攻撃の起点につかうことが出来た
・たとえば sendmail は以前はsetuidのチェックがなくてセキュリティーホールを出している
https://sites.google.com/site/fullycapable/Home/thesendmailcapabilitiesissue (ただしこれはRLIMIT_NPROCではなく、capabilityの考慮不足)
・そもそも論に戻ると、権限が上がる方向のexecveが未チェックで、権限を捨てる方向のsetuidがチェックあり(失敗しうる)というの論理的におかしい。(Unix的にはrootはすべてOKなのは正しいが、ここでいってるのはセキュリティ的な筋論)
・なので、setuidでのチェックを削除して、execveでのチェックを追加する変更を3.1で加えた

そのとき、そのパッチ作成にかかわったKOSAKIという人が man も変えろとBugzilla起票してたのが、最近関係者レビューが終わってやっとこさ反映されたということです。
https://bugzilla.kernel.org/show_bug.cgi?id=42704

ちなみに、この挙動はNetBSDとも一致してるので、世の中のOSSでは問題ないことが確認済みだったりします。

ChangeLogの全文はこちら。
http://man7.org/linux/man-pages/changelog.html#release_3.69


PS さいきんSYSV IPCのデフォルトを無制限に変えたんだけど(従来はリミットが小さすぎて実用になってなかった)、まだmanには反映されてないみたいだ



関連記事


linux | 【2014-06-16(Mon) 11:47:54】 | Trackback:(0) | Comments:(0)
  1. 無料アクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。