したがって、ハートビートバグは、実際にペイロードがない(または少ない)ときにペイロードを読み取るため、メモリ読み取りオーバーランを引き起こし、プロセスメモリ(の一部)を公開する可能性があります。
しかし、特にハートビートで何のためにペイロードが必要ですか?
応答にmemcpyされたようです。正確にどのように使用されていますか?
編集:
同様の質問、非常に興味深い回答: なぜクライアントがメッセージの長さを提供するのですか?
TildalWaveのコメントに応じて編集:
この質問は 55116 の重複ではありません。ペイロードの使用目的を尋ねています。もう1つの質問は、エクスプロイトが一般にどのように機能するか(「OpenSSL TLSハートビート(ハートビート)エクスプロイトはどのように正確に機能するか」)であり、「ペイロード」という単語も含まれていません。
明確化-私の質問は少し不明瞭なようです。
TLSの「ハートビート」機能は、TLS over UDPまたはその他のコネクションレス型プロトコルを対象としています。 「ハートビート」パケットは、サーバーに「まだそこにいますか?」任意のサイズの「ペイロード」フィールドを使用すると、1つのハートビートパケットを別のハートビートパケットに柔軟に伝えることができます。
問題は、この柔軟性がほとんどすべての用途に過剰であることです。単純なシーケンス番号または他の固定サイズのフィールドも同様に機能します。