タグ

ブックマーク / lewuathe.com (1)

  • Heart Bleedを読んだ - The first cry of Atom

    int dtls1_process_heartbeat(SSL *s) { unsigned char *p = &s->s3->rrec.data[0], *pl; unsigned short hbtype; unsigned int payload; unsigned int padding = 16; /* Use minimum padding */ heartbeatという機能の詳しいことは調べられていないけれどどうやらクライアントーサーバ型の機能を提供するものらしい。 つまり何らかのリクエストを受け取ってレスポンスを返すようなサービスを提供するものらしい。dtls1_process_heartbeatで大事なのは ポインタpだ。これはリクエストデータを受け取って格納している。このリクエストデータは構造体になっていて、以下のように記述されている。 typedef struct

    tyru
    tyru 2014/04/10
    データ長をリクエストからチェック無しに取得しているため、バッファオーバーランを起こす事が出来てしまう。修正パッチでは入力チェックが追加された。
  • 1