パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Linuxなどのスタック管理機構において権限昇格が可能な脆弱性が発見される。多くのLinuxディストリビューションに影響」記事へのコメント

  • by Anonymous Coward on 2017年06月22日 0時41分 (#3232138)

    BSD系のqsortは再帰するから
    スタック系の攻撃に弱いみたいだね。
    再帰で書けるなら再帰で、というのが
    意識高いプログラマかと思ってたけど
    必ずしもそうではないと。

    • by Anonymous Coward

      言うまでもないことだが、再帰は使うメリットが大きい場面で使うものであって、何でも再帰で書けば良いというものではない。

      • by Anonymous Coward

        関数型言語「お前は俺達を敵に回した」

    • by Anonymous Coward

      Cで、通常想定される程度のスタック使用量で再帰するやつならガードページで捕まえられるんじゃない? それでクラッシュ(clashじゃなくてcrashの方)させるのを攻撃というなら攻撃だろうけど。今回のは従来の保護機構をスキップするような手段が見つかったって話じゃないのかな。

      あと深い再帰でクラッシュっていうのは再帰そのものが悪いんじゃなくて言語ランタイム設計がそういう選択をしてるってことね。設計によっては深さを数えて一定以上はランタイムエラーを投げるものもあるし、割り当てられたスタック領域を使い切ったら生きてるフレームをヒープに移すことで事実上ヒープとスタックの境界を無くしたものとかもある。

      言語の性質を知らないと再帰のコストは見えにくいけれど、ちゃんとわかってれば再帰はヒープとスタックのトレードオフだから適切な選択をすればいいだけ。

      • by osdn (47242) on 2017年06月22日 16時04分 (#3232478)

        加えて、
        今回の問題は qsort の再帰の深さ(=スタック使用量)が攻撃者の任意になることなので
        再帰自体がどうとかではないようですね。
        CVE-2017-1000373 [mitre.org]の修正 [openbsd.org]を見ても、
        これで本当に防げているのか、私のような素人には中々理解できません…。

        親コメント
        • by tho (23328) on 2017年06月22日 19時37分 (#3232647)

          > CVE-2017-1000373 [mitre.org]の修正 [openbsd.org]を見ても、
          > これで本当に防げているのか、私のような素人には中々理解できません…。
          まったくです。私もこれはスタック使用量は減るだけで根本的に解決になっていないと思いますが、これで原理的に攻撃できるデータの組み合わせ存在しなくなるとか何かあるんですかね。

          カーネル側の対策で、ガードとして1MB分あけるようにしているようです。
          008: SECURITY FIX: May 19, 2017 [openbsd.org]
          しかしこれもローカル変数が1MB以上あるような関数が呼び出されれば、ガードをスキップしてしまいそうな。

          親コメント
    • by Anonymous Coward

      それは意識高い系の無能。真のプログラマは常にベストなパフォーマンスを求めるのだ。

    • by Anonymous Coward

      明示的にスタック操作するかどうかの違いだけなのに

アレゲは一日にしてならず -- アレゲ研究家

処理中...