전공영역 공부 기록

React server component 취약점 간단히 분석 - CVE-2025-55182, CVE-2025-66478

악분 2025. 12. 11. 00:39
반응형

 

개요

2025년 12월 첫째 주에 위험한 취약점이 공개되었습니다. 취약한 React Server Component를 사용하는 서버는 공격자가 인증 없이 원격으로 명령어를 실행할 수 있습니다. 이를 통해 공격자는 서버에서 원하는 명령어를 실행할 수 있습니다.

  • 취약점 식별번호: CVE-2025-55182, CVE-2025-66478

 

취약점 원리

취약점 원리는 아래 문서에 아주 자세히 설명하고 있습니다. 문서를 읽기 위해 자바스크립트와 React의 이해가 많이 필요합니다.

 

제가 이해한 바로는 취약점은 3가지 포인트를 공격에 활용했습니다.

1. React Server Action

React에서는 클라이언트가 서버단에서 비동기 함수를 실행하는 Server Action을 제공합니다. 취약점은 Server action을 활용하여 클라이언트가 전달한 코드를 서버단에서 실행하게 합니다.

https://ko.react.dev/reference/rsc/server-functions

 

2. Flight Protocol 유효성검사 부재

React Server Component 기능은 List와 같은 다양한 데이터 포맷을 처리해야 합니다. 이러한 포맷 간 호환성을 위해 Flight Protocol을 사용합니다. 문제는 Flight Protocol의 유효성 검사가 일부 누락되어 있다는 점입니다. 공격자는 이 취약점을 악용해 Flight Protocol 처리 과정에서 코드를 악의적으로 변조할 수 있습니다. 즉, 공격자가 원하는 임의의 코드를 실행할 수 있게 됩니다.

 

3. javascript proto

Flight Protocol로 코드를 변조할 때 javascript proto를 변조합니다. javascript proto는 객체들이 참조하는 공통 필드라고 생각하시면 됩니다. 아래 그림처럼 proto를 변조하면 모든 객체가 영향을 받습니다.

 

취약점은 javascript proto를 변조하여 공격자가 원하는 코드 즉 요청데이터 중 _response._prefix를 실행하게 합니다.

참고자료: https://github.com/msanft/CVE-2025-55182

 

참고자료

반응형