United States Computer Emergency Readiness Team (US-CERT)は2020年7月14日(米国時間)、「Apache Releases Security Advisories for Apache Tomcat|CISA」において、オープンソースのJavaアプリケーションサーバである「Apache Tomcat」にセキュリティ脆弱性が存在すると伝えた。この脆弱性を悪用されると、攻撃者によってシステムがサービス拒否(Denial of Service:DoS)の状態に陥らされる危険性がある。
該当する脆弱性に関する情報は、開発者のMark Thomas氏による下記の投稿にまとめられている。
- [SECURITY] CVE-2020-13934 Apache Tomcat HTTP/2 Denial of Service
- [SECURITY] CVE-2020-13935 Apache Tomcat WebSocket Denial of Service
サービス拒否を引き起こす原因となる脆弱性は、HTTP/2の処理とWebSocketの処理のそれぞれに存在する。前者については、HTTP/1.1通信のリクエストからHTTP/2通信へ切り替える際に、HTTP/1.1のプロセスを解放しないことから、そのようなリクエストが大量に発生した場合にメモリ不足となってサービス拒否が発生するという。この問題の対象となるバージョンは次の通り。
- Apache Tomcat 10.0.0-M1から10.0.0-M6
- Apache Tomcat 9.0.0.M5から9.0.36
- Apache Tomcat 8.5.1から8.5.56
WebSocketの方の脆弱性については、WebSocketフレームのペイロード長が正しく検証されないことが原因で、不正なペイロード長のリクエストを受け取った場合に無限ループに陥り、サービス拒否を引き起こす可能性があるという。こちらの問題の対象となるバージョンは次の通り。
- Apache Tomcat 10.0.0-M1から10.0.0-M6
- Apache Tomcat 9.0.0.M1 to 9.0.36
- Apache Tomcat 8.5.0から8.5.56
- Apache Tomcat 7.0.27 to 7.0.104
いずれの脆弱性についても対策済みのバージョンがリリースされている。脆弱性の深刻度の分類は、HTTP/2の方が警告(Moderate)、WebSocketの方が重要(Important)となっている。Cybersecurity and Infrastructure Security Agency (CISA)は、ユーザーおよび管理者に対し、上記のセキュリティ情報をチェックするとともに、必要に応じてアップデートを適用することを推奨している。