2021年1月14日(米国時間)、Apache Software Foundationは、Apache TomcatにJava APIのFile.getCanonicalPath()のバグによりJSPのソースコードが漏洩する可能性がある脆弱性を発見したと公開しました。日本時間の翌日には、JPCERTでも2021年1月15日に「Apache Tomcatの脆弱性(CVE-2021-24122)に関する注意喚起」として公開されています。

Tomcat 9系では、Tomcat9.0.40で改修

本家の脆弱性データベースを検索すると、「17 November 2020 Fixed in Apache Tomcat 9.0.40:Important: Information disclosure CVE-2021-24122」にて脆弱性の修正が行われているようです。※Tomcat 10系も2020年12月8日に「10.0.0」がリリースされていますが、まだ、beta版となっていますので、Tomcat 9系を抑えておけば十分かと思います。

影響を受けるバージョン

今回の脆弱性の影響を受けるバージョンは、以下の通りです。

Apache Tomcat10.0.0 – M1から10.0.0-M9
Apache Tomcat9.0.0.M1から9.0.39
Apache Tomcat 8.5.0 – 8.5.59
Apache Tomcat 7.0.0 – 7.0.106

但し、今回の脆弱性は、NTFSファイルシステムを利用しているシステム構成で、ネットワーク上にリソースを提供している場合でJRE API File.getCanonicalPath()の予期しない動作が原因となり起こるJSPソースコードの開示問題ですので、バージョンのアップデートは必要不可欠になりますが、利用条件によって該当しない場合などは検証環境等でしっかりと動作確認をした上で対応しても問題なさそうです。

File.getCanonicalPath()

File.getCanonicalPath(): 抽象パス名の正規の形式を返す。

Java API

JavanのAPIとは、”Application Programming Interface”の略で、Javaで開発されたアプリを作成する上で必要となる標準機能を提供してくれるインターフェースのことです。これが無いと開発できません(;’∀’)

Java APIの最新バージョン ChromeにサポートされなくなったJava

そういえば、2015年にChromeがJavaプラグインのサポートを標準から外す決定をしたときから、本格的にJavaという言葉を聞くことがなくなってきたような気がしますが、久々にJavaAPIを見てみたら、バージョンが13まで上がっていましたので、備忘録として「Java API ドキュメント(API仕様)」を張り付けておきます。

Java®Platform, Standard Edition & Java Development Kit
バージョン13 API仕様(外部リンク)