🔍 CVE-2026-35337

8.8
CVSS Score
HIGH
2026-04-13
2026-10-26 22:10
✅ 완료

🇰🇷 한글 설명

Apache Storm 2.8.6 미만 버전에서 Nimbus Thrift API로 전달되는 토폴로지 자격 증명(TGT)을 역직렬화할 때 클래스 필터링 없이 ObjectInputStream.readObject()를 사용하여 신뢰할 수 없는 데이터 역직렬화 취약점이 존재합니다. 인증된 사용자가 조작된 직렬화 객체를 전송하면 Nimbus 및 Worker JVM에서 원격 코드 실행이 가능합니다.

💡 쉬운 설명

Apache Storm이 외부에서 받은 인증 정보를 검사 없이 해석하는 결함이 있습니다. 토폴로지 제출 권한이 있는 사용자가 악성 데이터를 보내면 서버에서 임의의 코드가 실행될 수 있습니다.

🇺🇸 원문 (English)

Deserialization of Untrusted Data vulnerability in Apache Storm. Versions Affected: before 2.8.6. Description: When processing topology credentials submitted via the Nimbus Thrift API, Storm deserializes the base64-encoded TGT blob using ObjectInputStream.readObject() without any class filtering or validation. An authenticated user with topology submission rights could supply a crafted serialized object in the "TGT" credential field, leading to remote code execution in both the Nimbus and Worker JVMs. Mitigation: 2.x users should upgrade to 2.8.6. Users who cannot upgrade immediately should monkey-patch an ObjectInputFilter allow-list to ClientAuthUtils.deserializeKerberosTicket() restricting deserialized classes to javax.security.auth.kerberos.KerberosTicket and its known dependencies. A guide on how to do this is available in the release notes of 2.8.6. Credit: This issue was discovered by K.

📍 영향받는 시스템

Apache Storm 2.8.6 미만 2.x 버전 (Nimbus 및 Worker 노드)

⚔️ 공격 벡터

토폴로지 제출 권한을 가진 인증 사용자가 TGT 자격 증명 필드에 조작된 직렬화 객체를 담아 Nimbus Thrift API로 전송

🛡️ 대응 방법

Apache Storm 2.8.6 이상으로 업그레이드하거나, 임시 조치로 ClientAuthUtils.deserializeKerberosTicket()에 ObjectInputFilter 허용 목록을 적용

🔧 검증 코드

출력된 버전이 2.8.6 미만이면 취약하며, 2.8.6 이상이면 패치된 것입니다. 명령어가 실패하면 Storm이 PATH에 없는 것이므로 설치 경로에서 직접 확인이 필요합니다.

Shell / Script
storm version 2>/dev/null | head -n 1

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Oracle Java SE