脆弱性と到達不能性とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 脆弱性と到達不能性の意味・解説 

脆弱性と到達不能性

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/28 05:23 UTC 版)

到達不能コード」の記事における「脆弱性と到達不能性」の解説

以下の例は、AppleによるTLS/SSL実装上のバグであり、CVE番号として CVE-2014-1266 が与えられているほか、"goto fail bug" とも呼ばれている。実際コード以下の通りである。 static OSStatusSSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen){ OSStatus err; ... if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail; ... fail: SSLFreeBuffer(&signedHashes); SSLFreeBuffer(&hashCtx); return err;} goto fail;という文が2行連続している所がある。そして、2行目のほうのgoto文により、本来到達すべき final呼び出し到達不能コードとなっていて、final によるチェックが常にスキップされ、errSHA1 update 操作成功の後の値を保持することとなり、final による署名検証が行われない態となっていた。 あきらかにこれは「到達不能コードによってセキュリティ上の脆弱性が齎された」のではない(到達不能コードは、一般にもしない。それが何か悪さをしたと言えるのは、例えばコードサイズの増加であるとか、言語仕様未定義なソースコード記述利用して実行させる、などした場合であろう)。真にセキュリティ上の脆弱性を齎した」のは、「一見すると到達不能コードのように見えるためか、放置されたものと思われる、2行目のほうのgoto文(によって、到達されねばならないコード到達不能になっていたこと)」である。教訓は「到達不能コード放置するな。なぜなら、そういうコード存在見慣れるせいで、到達不能であってはいけないコード到達不能になっていることを見逃す原因になるから」という点である。

※この「脆弱性と到達不能性」の解説は、「到達不能コード」の解説の一部です。
「脆弱性と到達不能性」を含む「到達不能コード」の記事については、「到達不能コード」の概要を参照ください。

ウィキペディア小見出し辞書の「脆弱性と到達不能性」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「脆弱性と到達不能性」の関連用語

脆弱性と到達不能性のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



脆弱性と到達不能性のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの到達不能コード (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS