2020-05-20 Apache Tomcat 세션 지속성을 악용한 원격 코드 실행 취약점이 발견되었다. 해당 취약점은 Apache Tomcat의 역직렬화 데이터의 유효성 검사 과정에서 발생하는 취약점으로 공격자가 서버의 파일 내용과 파일명을 조작할 수 있는 경우 서버 내에 페이로드를 생성하여 역직렬화 하여 임의의 코드를 수행할 수 있다.
취약점 공격 조건
1. 공격자는 서버 내에 있는 파일의 이름과 내용을 수정할 수 있어야한다.
2. 서버의 설정은 FileStore를 이용하여 PersistenceManager를 사용하여야 한다.
3. PersistenceManager의 sessionAttributeValueClassNameFilter값은 “Null”로 설정되어 있거나, 공격자가 사용하려는 객체의 역직렬화를 검증할 수 없는 상황이어야 한다.
4. 공격자는 WebRoot 내의 FileStore기능이 사용되는 경로의 상대경로를 알고 있어야 한다.
위와 같은 조건들이 존재할 때 공격자는 FileStore기능이 적용되는 경로 내의 파일을 임의로 실행시키는 것이 가능해져 원격 명령 실행이 가능하게 된다. 단, 위의 조건들 중 하나라도 성립되지 않을 경우 공격은 성공할 수 없다.
영향을 받는 버전
- Apache Tomcat 10.0.0-M1 to 10.0.0-M4
- Apache Tomcat 9.0.0.M1 to 9.0.34
- Apache Tomcat 8.5.0 to 8.5.54
- Apache Tomcat 7.0.0 to 7.0.103
보안관제센터 Team MIR