[初学者向け]Scalaは2.11.12以降か2.12.4以降を使おう[脆弱性対策]
はじめに
Scalaを使ったサンプルを試したり、及び関連ライブラリを入れていくと、特定以降のバージョンが頻繁に使われていることに気がつくかもしれません。主に2.11.12以降です。特定バージョン以降で何かあったのか気になり調べてみました。
Scala における認可・権限・アクセス制御に関する脆弱性
JVNDB-2017-010279 Scala における認可・権限・アクセス制御に関する脆弱性
影響を受けるバージョンは以下の通り。
- Scala 2.10.7 未満
- Scala 2.11.12 未満の 2.11.x
- Scala 2.12.4 未満の 2.12.x
公表日が2017年11月13日で、最終更新日が2017年12月11日です。長く使っている人には対策済みで特に何の問題もないでしょう。問題はこの辺りについて認識がないケースです。
AWSのサンプルコードに潜伏するバージョン
AWS Glue ETL ライブラリを使用した ETL スクリプトのローカルでの開発とテスト
上記の脆弱性記事を見た後に、以下のサンプルコードを見ると潜む問題に気がつくと思います。Glueで初めてScalaを使う場合にはおそらく全く気が付かないでしょう。(私がそうでした)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.amazonaws</groupId> <artifactId>AWSGlueApp</artifactId> <version>1.0-SNAPSHOT</version> <name>${project.artifactId}</name> <description>AWS Glue ETL application</description> <properties> <scala.version>2.11.1</scala.version> </properties>
なお、バージョンを上げるようにフィードバック済みです。
あとがき
更新の活発なmetalsvim等のライブラリであれば、動作対象が2.11.12以降の対処済みバージョンに限定されているものが多く、基本は問題ありません。
できるだけ枯れたバージョンを使いたいものですが、最低でも問題のないバージョンを選びましょう。