C 言語のメモリ割り当て関数には、malloc()
、kmalloc
、 smalloc があります。 ()
、xmalloc()
、realloc()
、calloc()
、GlobalAlloc()
、 HeapAlloc ()
など。例として malloc()
を取り上げます。malloc()
関数のプロトタイプは次のとおりです。
extern void*malloc ( unsignedintnum_bytes);
malloc()
この関数は、num_bytes
バイトのメモリを割り当て、このメモリへのポインタを返します。メモリ割り当て長の整数が汚染されている可能性のある信頼できないソースから取得されたものである場合、外部入力データが効果的に判断されないと、メモリ割り当てが非常に大きくなる可能性があります。汚染されている可能性がある信頼できないソースには、コマンド ライン パラメーター、構成ファイル、ネットワーク通信、データベース、環境変数、レジストリ値、およびアプリケーション外部からのその他の入力が含まれます。
非常に大きな整数値を渡すなど、メモリ割り当て関数の長さパラメータとして汚染されたデータを直接使用します。プログラムはそれに応じて大量のメモリを割り当て、その結果、システムに膨大なメモリ オーバーヘッドが発生し、さらにはサービス妨害攻撃につながることもあります。
CVE には関連する脆弱性情報もいくつかあります。2018 年 1 月から 2019 年 3 月までに、CVE には関連する脆弱性情報が 4 件ありました。脆弱性情報は次のとおりです。
概要 | |
---|---|
ZZIPlib バージョン 0.13.68 の zzip/zip.c ファイルの「__zzip_parse_root_directory」関数にセキュリティ上の脆弱性があります。リモートの攻撃者がこの脆弱性を悪用し、特別に細工された zip ファイルを使用してサービス妨害 (制御されないメモリ割り当てとクラッシュ) を引き起こす可能性があります。 | |
PoDoFo の Base/PdfVecObjects.h ファイルの「PoDoFo::PdfVecObjects::Reserve」関数にセキュリティ上の脆弱性があります。 0.9.5バージョン。リモートの攻撃者がこの脆弱性を悪用し、特別に細工された PDF ファイルを使用してサービス妨害 (制御されないメモリ割り当て) を引き起こす可能性があります。 | |
PoDoFo バージョン 0.9 の Base/PdfParser.cpp ファイルの「PdfParser::ReadXRefSubsection」関数にセキュリティ上の脆弱性があります。 5. この脆弱性は、プログラムがメモリの割り当てを制御しないという事実に起因します。リモートの攻撃者がこの脆弱性を悪用し、特別に細工された PDF ファイルを使用してサービス妨害を引き起こす可能性があります。 |
以上がC言語の汚染されたメモリ割り当て関数の例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。