[하루한줄] CVE-2021-27850: Apache Tapestry CVE-2019-0195 Bypass

URL

CVE-2021-27850: Apache Tapestry: Bypass of the fix for CVE-2019-0195

Target

  • Apache Tapestry 5.4.5, 5.5.0, 5.6.2 및 5.7.0 이전 버전

Explain

오픈소스 웹 프레임워크인 Apache Tapestry에서 발견된 원격 코드 실행 취약점 CVE-2019-0195 패치 우회의 세부 정보가 공개되었습니다.

CVE-2019-0195는 임의의 클래스 파일을 다운로드할 수 있어 해커가 이를 이용하면 serialized Java 객체 서명에 사용되는 HMAC 비밀 키를 알아낼 수 있습니다. 해커는 획득한 HMAC 비밀 키로 CommonsBeanUtils1과 같은 Java RCE gadget 체인에 서명할 수 있고 이는 원격 코드 실행으로 이어집니다.

위 취약점은 URL request에 .class , .properties , .xml 이 있는지 확인하고 이를 필터링하는 것으로 패치되었으나 payload URL의 끝에 / 를 추가하면 필터링을 간단하게 우회해 기존 취약점을 활용할 수 있는 것으로 확인되었습니다.

http://[host ip]/assets/.../services/AppModule.class   -> ".class" 필터링 적용됨 
http://[host ip]/assets/.../services/AppModule.class/  -> ".class" 필터링 우회