Oracle Java の PoC エクスプロイト:優先すべき ECDSA 脆弱性へのパッチ適用とは?

Researcher Releases PoC for Recent Java Cryptographic Vulnerability

2022/04/22 TheHackerNews — Java 環境における、デジタル署名バイパスの脆弱性を証明する、PoC エクスプロイト・コードがオンラインで共有されている。この脆弱性 CVE-2022-21449 (CVSS : 7.5) は、Oracle Java SE および Oracle GraalVM Enterprise Edition の、以下のバージョンに影響を及ぼす。

  • Oracle Java SE: 7u331, 8u321, 11.0.14, 17.0.2, 18
  • Oracle GraalVM Enterprise Edition: 20.3.5, 21.3.1, 22.0.0.2

この脆弱性は、Java の Elliptic Curve Digital Signature Algorithm (ECDSA) 実装に存在する。ECDSA とは、メッセージやデータにデジタル署名を行い、内容の真正性と完全性を検証する暗号メカニズムのことである。この欠陥は、暗号の失敗 (Java Psychic Signatures:Jave 心霊署名) により、完全に空白の署名提示が可能になるものだ。そして、脆弱な実装では、有効になると認識されている。

この脆弱性の悪用に成功した攻撃者は、署名を偽造し、認証手段を回避できる。セキュリティ研究者の Khaled Nassar が発表した PoC では、脆弱なクライアントと悪意の TLS サーバーが登場し、前者はサーバーから無効な署名を受け取るが、TLS ハンドシェイクが失敗することはない。

2021年11月11日に、この欠陥を発見/報告した ForgeRock の研究者 Neil Madden は、「このバグの重大性を誇張する必要はない。対象となるサーバーが Java 15/16/17/18 を実行していて、セキュリティ機構で ECDSA 署名が使用されている場合には、攻撃者による容易かつ完全な回避が可能になる」と述べている。

この問題は、Oracle が四半期ごとにリリースしている、Critical Patch Update (CPU) の 2022年4月リリースで対処されている。Java 15/16/17/18 環境に使用しているユーザー組織は、今回の PoC 公開による積極的な悪用の試みを軽減するために、パッチの優先的な適用が推奨される。

この脆弱性 CVE-2022-21449 ですが、4月20日の Oracle Critical Patch Update (CPU) で公開された後に、Red Hat/Ubuntu/Debian といった Linux ディストリビューションでも対応されているとのことです。Oracle CPU 以外での最近の情報としては、3月17日に「Unix で新たな rootkit が発見:Oracle Solaris に展開され ATM データを操作」という記事がありました。よろしければ、ご参照ください。

A proof-of-concept (PoC) code demonstrating a newly disclosed digital signature bypass vulnerability in Java has been shared online.

The high-severity flaw in question, CVE-2022-21449 (CVSS score: 7.5), impacts the following versions of Java SE and Oracle GraalVM Enterprise Edition –

  • Oracle Java SE: 7u331, 8u321, 11.0.14, 17.0.2, 18
  • Oracle GraalVM Enterprise Edition: 20.3.5, 21.3.1, 22.0.0.2

The issue resides in Java’s implementation of the Elliptic Curve Digital Signature Algorithm (ECDSA), a cryptographic mechanism to digitally sign messages and data for verifying the authenticity and the integrity of the contents.

In a nutshell, the cryptographic blunder — dubbed Psychic Signatures in Java — makes it possible to present a totally blank signature, which would still be perceived as valid by the vulnerable implementation.

Successful exploitation of the flaw could permit an attacker to forge signatures and bypass authentication measures put in place.

The PoC, published by security researcher Khaled Nassar, involves a vulnerable client and a malicious TLS server, the former of which accepts an invalid signature from the server, effectively allowing the TLS handshake to continue unimpeded.

“It’s hard to overstate the severity of this bug,” ForgeRock researcher Neil Madden, who discovered and reported the flaw on November 11, 2021, said.

“If you are using ECDSA signatures for any of these security mechanisms, then an attacker can trivially and completely bypass them if your server is running any Java 15, 16, 17, or 18 version.”

The issue has since been addressed by Oracle as part of its quarterly April 2022 Critical Patch Update (CPU) released on April 19, 2022.

In light of the release of the PoC, organizations that use Java 15, Java 16, Java 17, or Java 18 in their environments are recommended to prioritize the patches to mitigate active exploitation attempts.

Found this article interesting? Follow THN on FacebookTwitter  and LinkedIn to read more exclusive content we post.