This service is available only in Japanese-language.

wpa_supplicant:fix WPA2 key relay security bug


BlackHatでの発表が予告されたWPA2の脆弱性ですが、gitで取得する分に関してYocto2.1以降は本日(10/17 7:00)頃
セキュリティFixがcommitされています。
(追記) 10/17 20:17[日本時間] に、Yocto2.0(jethro)向けのパッチリリースがMLに投稿されています。
(追々記) 11/3 21:46[日本時間] に、Yocto1.6(daisy)向けのパッチリリースがMLに投稿されています。
Yocto2.3(pyro) http://lists.openembedded.org/pipermail/openembedded-core/2017-October/1...
Yocto2.2(morty) http://lists.openembedded.org/pipermail/openembedded-core/2017-October/1...
Yocto2.1(krogoth) http://lists.openembedded.org/pipermail/openembedded-core/2017-October/1...
Yocto2.0(jethro) http://lists.openembedded.org/pipermail/openembedded-core/2017-October/1...
Yocto1.6(daisy) http://lists.openembedded.org/pipermail/openembedded-core/2017-November/...

ブランチ名を指定してgitで取得する場合は、最新のものに置き換えることで対応可能ですが、ベンダー提供のBSPに良くある
commit id を指定してgitで取得する場合は、以下の方法でbbappendを作成して、自前で対応することも可能です。

1)  独自のレイヤーを作成する。
   yocto-layer create <レイヤー名>
で作成すると簡単に作成できます。

2) 作成したイヤーに以下のディレクトリを作成する。
   recipes-connectivity/wpa-supplicant/wpa-supplicant

3) 作成したディレクトリに、key-replay-cve-multiple.patch という名称のファイルを作成する。
  上記の該当するブランチに対するパッチのメールを張り付ける。

4) パッチファイルの不要な部分を削除
  4-1 パッチファイルの先頭まで削除
  --- /dev/null
  +++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple.patch
   の行まで削除する。

  4-2 パッチファイルの最終行以降の削除
  diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb
  といった行以降を削除する。(jethro は2.4、krogoth及びmortyは、2.5、pyroは2.6)(削除は、この行も含みます)

  4-3 各行の先頭の+を削除

  上記手順で、パッチファイルの作成は完了です。

5) bbappendファイルの作成
  パッチを作成したディレクトリから一つ上のディレクトリに、jethorpはwpa-supplicant_2.4.bbappend 、krogoth及びmortyはwpa-supplicant_2.5.bbappend
pyroはwpa-supplicant_2.6.bbappend を作成します。
  ファイルの内容は
  FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
  SRC_URI += " file://key-replay-cve-multiple.patch "

6) wpa-supplicntのbuildの実行
  bitbake-layers add-layer 等を実行して、conf/bblayers.conf に1)で作成したレイヤーを追加したのち
  bitbake wpa-suppllicant を実行する。
  パッチが本当に適応されているか不安な場合は、tmp/work/xxxxx/wpa-supplicant/バージョン名/wpa-supplicant-バージョン/ 以下で
  実際に変更されているか確認する。

上記の手順で、今回発見された脆弱性に対して、ターゲット側の対応は完了となります。

なお、ベンダーから提供されるBSPに脆弱性への対応が入った場合は、今回作成したbbappendは不要となります。