web-dev-qa-db-ja.com

コンパイル時にコンパイラの脆弱性について聞いたことがない?

コンパイラの脆弱性を悪用する実際のソースコードはありますか?コンパイル中にコンパイラでバッファオーバーフローが発生し、任意のコードが実行されるコードのことです。

特定のコンパイラバージョンを使用してそのソースコードをコンパイルしようとすると、コンパイルの結果、ターゲットマシンに感染するエクスプロイトが発生します。

私はおもちゃの例や研究論文だけを検索しているのではなく、実際に実際のペイロードを備えたいくつかのマシンに影響を与えた文書化されたものを実際に探しています。

私は理論的にはこれが可能であることを知っていますが、これが誰かにとって本当の問題であったかどうか知りたいです。

6
CoffeDeveloper

はい、実際の例はまれですが、gcc、llvmなどの変更ログを確認してください。 IIRC私は少なくとも2つの実用的なPoCを見てきました。 1つはJavaで、もう1つはCコンパイラです。コンパイルの概念を拡張してJITを含めると、JavaScriptでさらに多くの例を見つけることができます Ruby または PHPエンジン いくつか言及します。

また、最適化によってソースコードに存在しない可能性がある脆弱性をコンパイル済みバイナリに導入するコンパイラの問題もあります。頭に浮かぶ最初の例は this 数年前からのLinuxカーネルの悪用で、コンパイラの最適化により、そもそも脆弱性を防ぐチェックが削除されました。

CERTは、 here に対して安全でなくなるように最適化される可能性のあるコードのいくつかのさまざまな例をカバーしています。

5
wireghoul