You are using a vulnerable version of OpenSSL
毎年恒例の(?)Google様からの警告メールが届きました。
Google Play公開のアプリに脆弱性のあるOpenSSLのバージョンが使われているから対応しないと公開をブロックするという内容です。
Adobe AIR SDK for Androidで開発していると、対応方法はSDKのバージョンを上げてみるしかないですね。というわけで、どのバージョンのAdobe AIR SDKでビルドするとどのバージョンのOpenSSLが含まれるのか調べました。
AIR SDKとOpenSSLの対応
| AIR SDK | OpenSSL | vulnerable version |
|---|---|---|
| 15.0.0.356 | 1.0.1i | yes |
| 16.0.0.292 | 1.0.1l | yes |
| 17.0.0.172 | 1.0.1m | yes |
| 18.0.0.199 | 1.0.1m | yes |
| 19.0.0.241 | 1.0.2d | yes |
| 20.0.0.260 | 1.0.2d | yes |
| 21.0.0.176 | 1.0.2f | no |
| 22.0.0.153 | 1.0.2f | no |
| 23.0.0.257 | 1.0.2h | no |
| 24.0.0.180 | 1.0.2h | no |
| 25.0.0.134 | 1.0.2j | no |
| 26.0.0.118 | 1.0.2k | no |
| 27.0.0.124 | 1.0.2k | no |
| 28.0.0.125 | 1.0.2k | no |
対応方法
2016年のOpenSSL 1.02f/1.01r以降に更新せよというお達しには、AIR SDKをバージョン21以降に上げて対応しましょう。
※APKファイルにAIRランタイムを同梱する「キャプティブランライム」で書き出している場合は、SDKを更新してリリースビルドする必要があります。
「共有AIRランタイム」で書き出している場合は、APKファイルにAIRランタイムが含まれずOpenSSLも含まれないためそもそも警告メールは届かないはずです。
※AIR26からAndroid向けの共有ランタイムは無効になり、キャプティブランタイムのみに変更されました。