| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- bandit #밴딧 #웹해킹 #해킹 #화이트해커 #공부 #스터디 #IT #hacking #linux #openssl #nmap
- msfconsole #heartbleed #247ctf #misc #webhacking
- 안드로이드 모의해킹
- time-based
- 모의해킹
- error-based
- androidhacking
- sql injection
- pentest
- Bandit
- 취약점 진단
- Linux
- 리눅스
- 밴딧
- 쿠키변조
- androGoat
- Today
- Total
d0r1
CVE-2025-55182 - React2Shell 취약점 분석 본문
https://www.dailysecu.com/news/articleView.html?idxno=203349
React·Next.js 겨냥한 React2Shell 공격 한국포함 전세계 확산…일부 PoC는 실전 사용 가능 - 데일리시큐
React 기반 웹 애플리케이션을 겨냥한 치명적인 원격코드실행(RCE) 취약점 ‘React2Shell’을 악용한 공격이 빠르게 확산되고 있다. 취약점 공개 이후
www.dailysecu.com
최근 보안판을 가장 뜨겁게 달군 녀석을 분석해보려고 해당 게시글을 작성하게 되었다
개요
CVSS 10.0
가장 최고점을 갖는 CVE가 최근 발급되었다.
해당 취약점은 현재 React2Shell 이라고 불리며, 과거 log4j RCE처럼 입력값이 프레임워크 내부 로직을 통해 자동 처리되며, 개발자 개입 없이 원격 코드 실행으로 이어진다는 점에서 유사하다
이 취약점의 영향 범위는 React 19.x 및 Next.js App Router(Server Actions 사용 환경)로 확인되었으며, 특정 버전 조합에서 재현된다
이는 React Server Component의 안전하지 않은 역직렬화 과정에서 발현된다
해당 취약점은 Flight Payload 역직렬화 과정에서 발생하는 취약점이다
취약점 분석
Next.js는 Next-Action 헤더를 감지하면, Server Action 요청으로 인식하고 이를 처리하기 위해 HTTP Body를 파싱(역직렬화)하는 과정을 거친다.
이 과정의 경우, 프레임워크 내부에서 자동으로 수행되기에 개발자가 어떠한 코드를 작성하지 않았더라도 발현될 수 있다.
해당 취약점에 대한 내용은 PoC를 기반으로 작성된다
https://github.com/l4rm4nd/CVE-2025-55182
GitHub - l4rm4nd/CVE-2025-55182: Docker poc lab for CVE-2025-55182 / CVE-2025-66478 (React2Shell) detection and exploitation
Docker poc lab for CVE-2025-55182 / CVE-2025-66478 (React2Shell) detection and exploitation - l4rm4nd/CVE-2025-55182
github.com
해당 작성자의 PoC을 살펴보면서 취약점을 살펴보자

Next-Action 헤더를 추가하고, 바디에 페이로드를 담아 전달하는 것을 확인할 수 있다.
이를 상세 분석하면 다음과 같다
"then": "$1:__proto__:then",
JavaScript의 비동기처리 메커니즘인 then을 오염시켜 흐름을 조작
"get": "$1:constructor:constructor"
객체의 생성자에 접근하여, 문자열 형태의 코드를 실제 실행 가능한 함수로 변환
"_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});"
child_process.execSync('id') 를 통해 id 명령어를 실행하고, 이를 res에 저장
res에 저장한 것을 에러 객체의 digest 속성에 담아서, throw를 수행
▶️ next.js에서 NEXT_REDIRECT 에러는 클라이언트로 전달되는 특성이 존재해 이를 통해 명령어 실행결과를 받으려함
이를 순서에 따라 재정리해보자
1. multipart/form-data 형식으로 서버에 요청을 보낸다
2. 요청 값을 서버는 React Server Action 전용 디코더로 파싱하며, 이 과정에서 참조 기반 객체 그래프를 복원한다.
이때 $1, $Q2와 같은 React Flight reference를 통해 서버 메모리상의 객체들을 조작함
3. Flight Payload 재구성 과정에서 사용되는 내부 response 객체의 _prefix 문자열이 Function constructor 경로를 통해 실행되는 지점에 도달한다
4. 임의 코드가 실행되고, 에러메시지 내 실행된 결과가 노출된다
재현
앞선 도커 파일을 통해, 서버를 구축하고 PoC에 맞춰 재현을 수행해보자


실제로 응답 값 내 에러메시지 속에 실행된 명령어의 결과가 노출되는 것을 확인할 수 있었다
지금 내가 테스트한 것은 단순 코드 실행 후 결과 노출이지만
https://asec.ahnlab.com/ko/91526/
React2Shell 취약점(CVE-2025-55182)을 악용한 EtherRAT 악성코드 유포 - ASEC
React2Shell 취약점(CVE-2025-55182)을 악용한 EtherRAT 악성코드 유포 ASEC
asec.ahnlab.com
이를 고도화한 공격이 존재하는 것을 확인할 수 있다
조치 방안
최신 버전으로 업데이트를 수행하면 해당 취약점은 더이상 발현되지 않는다
참고문헌
https://github.com/l4rm4nd/CVE-2025-55182
https://bandal.dev/blog/react-2-shell
http://blog.omoknooni.me/180
https://www.enki.co.kr/media-center/blog/complete-analysis-of-the-react2shell-cve-2025-55182-vulnerability
'이것저것 > 관심' 카테고리의 다른 글
| infomation_schema가 필터링된다면 (0) | 2023.11.09 |
|---|---|
| m1 맥북에서 x86-64 ubuntu server 구현하기 + 포너블 환경 맞추기 (0) | 2023.10.19 |
| [MYSQL] 기초 구문 정리 (0) | 2023.10.16 |
| [php] 기초 정리하기 (0) | 2023.09.12 |
| log4j (CVE-2021-44228) (0) | 2023.07.18 |