🇰🇷 한글 설명
SOFARPC 프레임워크의 SOFA Hessian 프로토콜에서 발생하는 역직렬화 취약점입니다. 5.12.0 미만 버전에서는 JDK에만 의존하는 가젯 체인을 통해 기존의 블랙리스트 보안 메커니즘을 우회할 수 있습니다.
💡 쉬운 설명
프로그램이 데이터를 읽어들이는 과정에서 악성 코드가 포함된 데이터를 정상적인 데이터로 착각하여 실행하게 만드는 보안 결함입니다. 해커가 이 허점을 이용하면 별도의 추가 프로그램 없이도 시스템을 공격할 수 있습니다.
🇺🇸 원문 (English)
SOFARPC is a Java RPC framework. SOFARPC defaults to using the SOFA Hessian protocol to deserialize received data, while the SOFA Hessian protocol uses a blacklist mechanism to restrict deserialization of potentially dangerous classes for security protection. But, prior to version 5.12.0, there is a gadget chain that can bypass the SOFA Hessian blacklist protection mechanism, and this gadget chain only relies on JDK and does not rely on any third-party components. Version 5.12.0 fixed this issue by adding a blacklist. SOFARPC also provides a way to add additional blacklists. Users can add a class like `-Drpc_serialize_blacklist_override=org.apache.xpath.` to avoid this issue.
📍 영향받는 시스템
SOFARPC 5.12.0 미만 버전
⚔️ 공격 벡터
SOFA Hessian 프로토콜을 통한 악성 가젯 체인이 포함된 데이터 전송 및 역직렬화 유도
🛡️ 대응 방법
SOFARPC를 5.12.0 이상 버전으로 업데이트하거나, JVM 옵션에 -Drpc_serialize_blacklist_override를 사용하여 블랙리스트를 추가 적용하십시오.
🔧 검증 코드
출력된 JAR 파일명에서 버전 번호를 확인하여 5.12.0 미만인지 확인하십시오.
find / -name "*sofarpc*.jar" 2>/dev/null | xargs grep -a "SOFARPC" | cut -d: -f1 | xargs -I {} unzip -l {} | grep -E 'sofarpc-[0-9.]+\.jar' || echo 'Version not found'