IRKitの脆弱性とファームウェアアップデートのお願いを今更ながら対応。
バージョンが3未満だとアップデートしないといけない。バージョンはAPIを呼び出すとレスポンスヘッダに入っているのでcurl
を使って以下のように確認。
$ curl -i "http://192.168.1.1/messages" -H "X-Requested-With: curl"
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/2.0.1
Content-Type: text/plain
2.0.1
なのでアップデートする。発売直後に買った人などは古いバージョンになっているはず、自分は一度動作がおかしかったときにArduino IDEでファームウェアを更新したので2.0.1になっている。
Electronアプリと思われるIRKit Updater.appをダウンロードして実行。GateKeeperに制限されて起動しなかったので、右クリックから開くで起動。無事3.0.0.0.g85190b1
へアップデートできた。
$ curl -i "http://192.168.1.1/messages" -H "X-Requested-With: curl"
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain
今回の修正でX-Requested-With
が必要になるなどIRKit Device HTTP APIの仕様が一部変更になったのだが、自作のPebble WatchappであるIRKit RemoteではIRKit Internet HTTP APIを使っているのでファームウェア更新後も問題なく動いた。オプションとしてIRKit Device HTTP APIを使うモードも用意しているけど使っている人はいないと思うので次にWatchappを更新するタイミングで対応しようと思う。