Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2022-43484: CVE-2022-43484について

TERASOLUNA Global Framework 1.0.0 (Public review version) and TERASOLUNA Server Framework for Java (Rich) 2.0.0.2 to 2.0.5.1 are vulnerable to a ClassLoader manipulation vulnerability due to using the old version of Spring Framework which contains the vulnerability.The vulnerability is caused by an improper input validation issue in the binding mechanism of Spring MVC. By the application processing a specially crafted file, arbitrary code may be executed with the privileges of the application.

CVE
#vulnerability#web#apache#java#ssl

1. はじめに

本ドキュメントは、TERASOLUNA フレームワークユーザの皆様に、CVE-2022-43484に関する情報提供を行う目的で公開するものです。 本ドキュメントの内容を参考に各システムにおける対策立案を行ってください。

2. 本脆弱性の概要

本脆弱性はクラスローダマニピュレーション(クラスローダを操作可能な脆弱性)であり、これを利用した攻撃方法や影響は実行環境によって異なります。

APサーバがTomcatである場合、リモートコード実行(RCE)が可能であることが確認されています。これ以外のAPサーバにおける影響は明確ではありませんが、クラスローダマニピュレーションはAPサーバの種類に関係なく可能であるため、Tomcat以外のAPサーバにおいても何らかの攻撃を受ける可能性があります。

本脆弱性はCVE-2022-22965(Spring4Shell)と同様のものですが、特定のSpringのバージョンの範囲では、利用するJDKのバージョンに関係なく本脆弱性を利用した攻撃が可能である点に注意が必要です。

3. 本脆弱性の影響範囲

本脆弱性は、Spring 3.2.6よりも古いバージョンを利用する、以下のTERASOLUNA フレームワークのバージョンで影響を受ける可能性があります。

  • TERASOLUNA Global Framework 1.0.0(Public review version)

  • TERASOLUNA Server Framework for Java(Rich版) 2.0.5.1以下のすべてのバージョン

本ドキュメントでは、TERASOLUNA Global Framework 1.0.0(Public review version)に関する内容を記載します。TERASOLUNA Server Framework for Java(Rich版)については、

  • https://osdn.net/projects/terasoluna/wiki/cve-2022-43484

をご確認ください。

4. 本脆弱性の対策方法

本脆弱性は、以下のいずれかの方法で対処可能です。

  • フレームワークのバージョンアップ

  • 原因となるパラメータやリクエストの無視・遮断(ワークアラウンド)

4.1. フレームワークのバージョンアップ

以下のバージョンアップを行うことで対処可能です。可能な限りこちらの方法を採用することを検討してください。

  • TERASOLUNA Global Framework 1.0.0(Public review version)を利用している場合

    • TERASOLUNA Server Framework for Java 5.7.1.SP1(Spring Framework 5.3.18を利用)にアップデートする

      • 本脆弱性のみであれば、TERASOLUNA Global Framework 1.0.1(Spring Framework 3.2.10を利用)以降へのアップデートのみで対策できますが、TERASOLUNA Global Framework の後継の TERASOLUNA Server Framework for Java 5.x では、これまでにその他の脆弱性対策も行っているため、最新のバージョンを利用することを推奨します。

4.1.1. TERASOLUNA Global Framework 1.x のバージョンアップ方法

4.2. 原因となるパラメータやリクエストの無視・遮断(ワークアラウンド)

バージョンアップが行えない場合、名前が

  • class.~

  • Class.~

  • ~.class.~

  • ~.Class.~

に該当するパラメータをすべて無視するか、上記のいずれかのパラメータを持つリクエストを遮断することで本脆弱性の影響を回避することができます。

これは、CVE-2022-22965に対するものと同様であり、CVE-2022-22965の対応として上記の対策を行っている場合は本脆弱性への対処は不要です。 ただし、本脆弱性はCVE-2022-22965と異なり、JDKに関係なく影響を受けるため、JDK8以前へのバージョンダウンは本脆弱性への対処にはならないことに注意してください。

また、TERASOLUNA Global Framework 1.0.x は、JDK9以降には対応していませんが、もしも、JDK9以降で運用している場合は、本脆弱性の影響を受けない TERASOLUNA Global Framework 1.0.1 以降であっても、CVE-2022-22965への対処(後述の本脆弱性の対策と同じ方法)が必要となるため、ご注意ください。

なお、原因となるパラメータやリクエストを無視・遮断する方針には、以下のようなものが考えられます。以降では、これらの具体的な実現方法について記載します。

  • WAF(ウェブアプリケーションファイアウォール)を利用して対策する

  • アプリケーションの実装で対策する

  • Tomcatをバージョンアップする(暫定対処)

4.2.1. WAF(ウェブアプリケーションファイアウォール)を利用して対策する

上記のいずれかのパラメータを持つリクエストを遮断するよう設定してください。実際の設定方法は製品ごとに異なるため、ベンダにお問い合わせください。

4.2.2. アプリケーションの実装で対策する

TERASOLUNA Global Frameworkのアプリケーションで対策を行う場合

コンポーネントスキャン範囲に以下のようなControllerAdviceクラスを配置することで、対策可能です。

対策用ControllerAdviceクラスの実装例

package xxx;

import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;

@ControllerAdvice
@Order(Ordered.LOWEST_PRECEDENCE)
public class BinderControllerAdvice {

    @InitBinder
    public void setAllowedFields(WebDataBinder dataBinder) {
         String[] denylist = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
         dataBinder.setDisallowedFields(denylist);
    }
}

DataBinder(WebDataBinder)のsetDisallowedFieldsをアプリケーション内で既に使用している場合、上記の方法では、

  • 上記の対策が取り消される

  • アプリケーションでもともと実装していた方が取り消される

という結果になる可能性があるため、無視するパラメータのパターン(setDisallowedFieldsの引数)に、"class.*", "Class.*", "*.class.*", “*.Class.*” をマージするよう対策を行ってください。

対策が有効になっているかについては、ControllerAdviceによる対策を行った後に、org.springframework.validation.DataBinderのデバッグログが出力されるよう設定した状態で、擬似的な攻撃を行うことで確認することができます。

DataBinderのデバッグログを出力するためにlogback.xmlに追加する設定

<logger name="org.springframework.validation.DataBinder">
    <level value="debug" />
</logger>

疑似的な攻撃用パラメータ

・class.a=a ・Class.b=b ・x.class.c=c ・x.Class.d=d

Formオブジェクトを引数に持つハンドラメソッドを呼び出すためのパスにリクエストを送信する際、上記の4つのパラメータを付与してください。

GETメソッドのリクエストを受け付けているパスであれば、アドレスバーにて、パスの後ろに以下のようなクエリ文字列を付与してください。

付与するクエリ文字列

?class.a=a&Class.b=b&x.class.c=c&x.Class.d=d

既にクエリ文字列がある場合は先頭の「?」を「&」に置き換えて連結してください。

検索画面やページネーションリンクからのリクエストで検索処理を行うパスであれば、

  • ハンドラメソッドの引数にFormオブジェクトがある(必須条件)

  • GETメソッドのリクエストを受け付けている(確認用のリクエストを送りやすい条件)

の両条件を満たしている可能性が高いです。

一方、POSTメソッドのリクエストしか受け付けていないパスの場合、アプリで元々扱っていないリクエストパラメータの追加を行うには、リクエストあるいは画面のHTMLを改ざんするツールを用いるなど、GETメソッドの場合と比較して、工夫が必要になります。

上記の疑似的な攻撃用パラメータによる攻撃を行い、以下のようなログが出力される場合、対策が有効になっています。

上記の疑似的な攻撃用パラメータによる攻撃を防いだ際に出力される、DataBinderのデバッグログの例(メッセージ部分のみ抜粋)

~Field [Class.b] has been removed from PropertyValues and will not be bound, because it has not been found in the list of allowed fields ~Field [class.a] has been removed from PropertyValues and will not be bound, because it has not been found in the list of allowed fields ~Field [x.Class.d] has been removed from PropertyValues and will not be bound, because it has not been found in the list of allowed fields ~Field [x.class.c] has been removed from PropertyValues and will not be bound, because it has not been found in the list of allowed fields

順不同で、すべてのログが出力されていることを確認してください。疑似攻撃を誤っていないにも関わらず、1つでも出力されていないログがある場合、対策誤りにより対策漏れがある状態です。

4.2.3. Tomcatをバージョンアップする(暫定対処)

本脆弱性と類似した脆弱性である、CVE-2022-22965 のPoCとして、WebアプリケーションがTomcat上で動作している場合にリモートコード実行が可能となる攻撃例が知られています。このPoCによる攻撃を成立させないようにTomcat側で対策されたものがTomcatの開発元であるApacheから提供されています。

Tomcat側で取られた対策は本脆弱性に対しても有効であるためTomcatを9.0.62 もしくは 8.5.78にバージョンアップすることでPoCに準ずる攻撃への対策が可能です。なお、Tomcat 10.0.20 でも同様の対策が行われていますが、少なくともTERASOLUNA Server Framework for Java 5.7.xまでは、Tomcat 10では動作しない点に注意してください。

Tomcatをバージョンアップする対応は特にEOLとなっている旧バージョンのSpring Frameworkを使用している場合には回避策の一つとなり得ますが、 本脆弱性の根本的な原因を修正したものではなく、今後別の攻撃手法が公開される可能性も否定できないため、あくまで一時的な回避策であることにご留意ください。

Tomcatバージョンアップによる対策は、以下のような条件をすべて満たす場合における暫定対処として実施することをおすすめします。

  • この回避策以外に記載している、いずれの回避策もすぐには実施できない

  • その間システムを停止することができない

  • Tomcatを使用している(直ちに攻撃を受ける可能性がある)

  • Tomcatのバージョンアップであればすぐに実施できる

Related news

CVE-2023-41726

Ivanti Avalanche Incorrect Default Permissions allows Local Privilege Escalation Vulnerability

CVE-2023-28069: DSA-2022-258: Dell Streaming Data Platform Security Update for Multiple Third-Party Component Vulnerabilities

Dell Streaming Data Platform prior to 1.4 contains Open Redirect vulnerability. An attacker with privileges same as a legitimate user can phish the legitimate the user to redirect to malicious website leading to information disclosure and launch of phishing attacks.

CVE-2022-36975

This vulnerability allows remote attackers to bypass authentication on affected installations of Ivanti Avalanche 6.3.2.3490. The specific flaw exists within the ProfileDaoImpl class. A crafted request can trigger execution of SQL queries composed from a user-supplied string. An attacker can leverage this vulnerability to bypass authentication on the system. Was ZDI-CAN-15332.

CVE-2023-21850: Oracle Critical Patch Update Advisory - January 2023

Vulnerability in the Oracle Demantra Demand Management product of Oracle Supply Chain (component: E-Business Collections). Supported versions that are affected are 12.1 and 12.2. Easily exploitable vulnerability allows unauthenticated attacker with network access via HTTP to compromise Oracle Demantra Demand Management. Successful attacks of this vulnerability can result in unauthorized creation, deletion or modification access to critical data or all Oracle Demantra Demand Management accessible data. CVSS 3.1 Base Score 7.5 (Integrity impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N).

4 over-hyped security vulnerabilities of 2022

Categories: Exploits and vulnerabilities Categories: News Tags: wormable Tags: zero-day Tags: spring4shell Tags: cve-2022-34718 Tags: log4j Tags: openssl Tags: cve-2022-36934 Tags: cve-2022-27492 Tags: cve-2022-22965 Tags: cve-2022-22963 What does it take to make the discussion of vulnerabilities useful? And where did this go wrong in 2022? (Read more...) The post 4 over-hyped security vulnerabilities of 2022 appeared first on Malwarebytes Labs.

CVE-2022-38765: Canon Medical Software Security Updates

Canon Medical Informatics Vitrea Vision 7.7.76.1 does not adequately enforce access controls. An authenticated user is able to gain unauthorized access to imaging records by tampering with the vitrea-view/studies/search patientId parameter.

GHSA-q5j9-f95w-f4pr: TERASOLUNA Server Framework vulnerable to ClassLoader manipulation

TERASOLUNA Global Framework 1.0.0 (Public review version) and TERASOLUNA Server Framework for Java (Rich) 2.0.0.2 to 2.0.5.1 are vulnerable to ClassLoader manipulation due to using the old version of Spring Framework which contains the vulnerability. The vulnerability is caused by an improper input validation issue in the binding mechanism of Spring MVC. By the application processing a specially crafted file, arbitrary code may be executed with the privileges of the application. When using TERASOLUNA Global Framework 1.0.0 (Public review version), update to TERASOLUNA Server Framework for Java 5.7.1.SP1 (using Spring Framework 5.3.18). This vulnerability alone can be addressed by updating to TERASOLUNA Global Framework 1.0.1 (using Spring Framework 3.2.10) or later.

CVE-2022-34102: Crestron Electronics, Inc.

Insufficient access control vulnerability was discovered in the Crestron AirMedia Windows Application, version 4.3.1.39, in which a user can pause the uninstallation of an executable to gain a SYSTEM level command prompt.

CVE-2022-32427: Security Bulletin | Printerlogic

PrinterLogic Windows Client through 25.0.0.676 allows attackers to execute directory traversal. Authenticated users with prior knowledge of the driver filename could exploit this to escalate privileges or distribute malicious content.

Hackers Exploited Atlassian Confluence Bug to Deploy Ljl Backdoor for Espionage

A threat actor is said to have "highly likely" exploited a security flaw in an outdated Atlassian Confluence server to deploy a never-before-seen backdoor against an unnamed organization in the research and technical services sector. The attack, which transpired over a seven-day-period during the end of May, has been attributed to a threat activity cluster tracked by cybersecurity firm Deepwatch

Red Hat Security Advisory 2022-4880-01

Red Hat Security Advisory 2022-4880-01 - Updated images are now available for Red Hat Advanced Cluster Security for Kubernetes (RHACS). The updated image includes bug fixes and feature improvements. Issues addressed include a bypass vulnerability.

RHSA-2022:4880: Red Hat Security Advisory: ACS 3.70 enhancement and security update

Updated images are now available for Red Hat Advanced Cluster Security for Kubernetes (RHACS). The updated image includes bug fixes and feature improvements. Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section.This content is licensed under the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/). If you distribute this content, or a modified version of it, you must provide attribution to Red Hat Inc. and provide a link to the original. Related CVEs: * CVE-2021-23820: json-pointer: type confusion vulnerability can lead to a bypass of CVE-2020-7709 when the pointer components are arrays * CVE-2021-41190: opencontainers: OCI manifest and index parsing confusion

CVE-2022-28874: Security advisories

Multiple Denial-of-Service vulnerabilities was discovered in the F-Secure Atlant and in certain WithSecure products while scanning fuzzed PE32-bit files cause memory corruption and heap buffer overflow which eventually can crash the scanning engine. The exploit can be triggered remotely by an attacker.

Spring4Shell Spring Framework Class Property Remote Code Execution

Spring Framework versions 5.3.0 to 5.3.17, 5.2.0 to 5.2.19, and older versions when running on JDK 9 or above and specifically packaged as a traditional WAR and deployed in a standalone Tomcat instance are vulnerable to remote code execution due to an unsafe data binding used to populate an object from request parameters to set a Tomcat specific ClassLoader. By crafting a request to the application and referencing the org.apache.catalina.valves.AccessLogValve class through the classLoader with parameters such as the following: class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp, an unauthenticated attacker can gain remote code execution.

CVE-2022-21496: Oracle Critical Patch Update Advisory - April 2022

Vulnerability in the Oracle Java SE, Oracle GraalVM Enterprise Edition product of Oracle Java SE (component: JNDI). Supported versions that are affected are Oracle Java SE: 7u331, 8u321, 11.0.14, 17.0.2, 18; Oracle GraalVM Enterprise Edition: 20.3.5, 21.3.1 and 22.0.0.2. Easily exploitable vulnerability allows unauthenticated attacker with network access via multiple protocols to compromise Oracle Java SE, Oracle GraalVM Enterprise Edition. Successful attacks of this vulnerability can result in unauthorized update, insert or delete access to some of Oracle Java SE, Oracle GraalVM Enterprise Edition accessible data. Note: This vulnerability applies to Java deployments, typically in clients running sandboxed Java Web Start applications or sandboxed Java applets, that load and run untrusted code (e.g., code that comes from the internet) and rely on the Java sandbox for security. This vulnerability can also be exploited by using APIs in the specified Component, e.g., through a web service ...

CVE-2022-22968: CVE-2022-22968 | Security

In Spring Framework versions 5.3.0 - 5.3.18, 5.2.0 - 5.2.20, and older unsupported versions, the patterns for disallowedFields on a DataBinder are case sensitive which means a field is not effectively protected unless it is listed with both upper and lower case for the first character of the field, including upper and lower case for the first character of all nested fields within the property path.

Microsoft’s Response to CVE-2022-22965 Spring Framework

Summary Summary Microsoft used the Spring Framework RCE, Early Announcement to inform analysis of the remote code execution vulnerability, CVE-2022-22965, disclosed on 31 Mar 2022. We have not to date noted any impact to the security of our enterprise services and have not experienced any degraded service availability due to this vulnerability.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907