Autodesk Revit RFA 파일 파싱 중 발생하는 크래시를 이용한 완전한 RCE 익스플로잇 제작
필자는 처음에 RFA 파일을 퍼징하여 유형 혼동 취약점으로 이어진 Autodesk Revit 2025의 충돌을 조사했습니다. 이 취약점은 std::pair 유형을 역직렬화할 때 발생했습니다. 프로그램이 소멸자가 아닌 값에 대해 소멸자를 호출하려고 할 때 충돌이 발생합니다. 작성자는 이 취약점을 악용하여 원격 코드 실행을 달성했습니다. 이 연구에는 리버스 엔지니어링과 디버깅이 포함되었습니다. IDA Pro, WinDBG, 시간 여행 디버깅과 같은 도구가 사용되었습니다. 손상된 RFA 파일을 배포할 수 있는 오토데스크 레빗용 Axis 커뮤니케이션 플러그인의 클라우드 기반 공급망 취약점이 익스플로잇에 큰 도움이 되었습니다. 작성자는 RFA 파일을 효과적으로 수정하는 데 필수적인 도구인 "CompoundFileTool"과 Revit의 gzip 동작을 모방한 또 다른 도구를 만들었습니다. 목표는 역직렬화된 객체의 오프셋 0x0을 조작하여 제어된 vtable을 가리키도록 하는 것이었습니다. 저자는 결국 유형 혼동을 악용하여 임의 코드 실행에 성공했습니다. 이 연구에는 글로벌/최신 스트림의 압축 데이터 형식을 포함하여 Autodesk의 RFA 형식을 역으로 이해하고 이해하는 작업도 포함되었습니다.
std::pair유형을 역직렬화할 때 발생했습니다. 프로그램이 소멸자가 아닌 값에 대해 소멸자를 호출하려고 할 때 충돌이 발생합니다. 작성자는 이 취약점을 악용하여 원격 코드 실행을 달성했습니다. 이 연구에는 리버스 엔지니어링과 디버깅이 포함되었습니다. IDA Pro, WinDBG, 시간 여행 디버깅과 같은 도구가 사용되었습니다. 손상된 RFA 파일을 배포할 수 있는 오토데스크 레빗용 Axis 커뮤니케이션 플러그인의 클라우드 기반 공급망 취약점이 익스플로잇에 큰 도움이 되었습니다. 작성자는 RFA 파일을 효과적으로 수정하는 데 필수적인 도구인 "CompoundFileTool"과 Revit의 gzip 동작을 모방한 또 다른 도구를 만들었습니다. 목표는 역직렬화된 객체의 오프셋 0x0을 조작하여 제어된 vtable을 가리키도록 하는 것이었습니다. 저자는 결국 유형 혼동을 악용하여 임의 코드 실행에 성공했습니다. 이 연구에는 글로벌/최신 스트림의 압축 데이터 형식을 포함하여 Autodesk의 RFA 형식을 역으로 이해하고 이해하는 작업도 포함되었습니다.