1. 解放後の使用
動的に割り当てられたメモリが解放されると、メモリの内容は不確実であり、再取得されると、メモリ マネージャは、解放されたメモリ ブロックを割り当てるか割り当て解除するかを決定しますが、そのメモリの内容が変更され、予期しないプログラム動作が発生する可能性があります。したがって、メモリが解放されると、メモリへの書き込みや読み取りが行われなくなることが保証されます。
2. リリース後の使用の危険
不適切なメモリ管理によって引き起こされる問題は、C/C プログラムの一般的な脆弱性です。解放後に使用すると、プログラムの異常終了、任意のコードの実行、サービス拒否攻撃など、悪用可能なリスクが生じる可能性があります。 2018 年 1 月から 11 月までに、CVE に関連する脆弱性情報は合計 134 件ありました。脆弱性の一部は次のとおりです。
脆弱性の概要 | |
---|---|
Artifex Mupdf バージョンの fz_keep_key_storable には、サービス拒否やコード実行の問題を引き起こす可能性のある use-after-free の脆弱性が存在します。この脆弱性は、被害者をだまして特別に細工された PDF ファイルを開かせることで悪用される可能性があります。 | |
Google Chrome 70.0.3538.67 より前のバージョンの Blink エンジンの HTMLImportsController に use-after-free の脆弱性があります。リモート攻撃につながる可能性がある 作成者は、特別に構築された HTML ページを通じてヒープ破損の問題を悪用します。 | |
Adobe Acrobat および Reader 2018.011.20063 以前のバージョン、2017.011.30102 以前のバージョン、2015.006.30452 以前のバージョンにリリースが存在します。バージョン 脆弱性のその後の使用。リモートの攻撃者がこの脆弱性を悪用して任意のコードを実行する可能性があります。 |
3. サンプル コード
この例は、Samate Juliet TestSuite for C/C v1.3 (https:// samate .nist.gov/SARD/testsuite.php)、ソースファイル名: CWE416_Use_After_Free__malloc_free_char_01.c。3.1 欠陥コード
3.2 修復コード
# 図 2: 修復後の検出結果
## に示すように ##解放後の使用を避けるためには、以下の点に注意する必要があります:
(1) メモリ解放時には必ずnullポインタを設定してください。複数または複雑なデータ構造を利用する場合、ただし、いくつかの問題はある程度回避できます。
(2) ループ文内でメモリの確保や解放を行う場合は、問題がないか十分に確認する必要があります。 (3) 自動検出にはソース コードの静的分析ツールを使用します。これにより、ソース コード内のリリース後の使用法の問題を効果的に検出できます。
以上がC++プログラムリリース後の使用による脆弱性解析の実施方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









