CVE-2025-55182 (React Server Components Vulnerability)가 서버 루트에 .sh, .gz 또는 XMRig 마이너와 같은 파일을 생성할 수 있나요?

발행: (2025년 12월 8일 오후 09:47 GMT+9)
7 min read
원문: Dev.to

Source: Dev.to

답변

1️⃣ CVE‑2025‑55182 자체가 할 수 있는 일

항목가능 여부이유
React Server Component(RSC) 내부 소스 코드 노출CVE‑2025‑55182는 RSC가 클라이언트에 전달해야 하는 직렬화된 바이트 스트림을 조작해, 서버‑사이드에서만 접근 가능한 파일(예: src/app/.../Component.server.jsx)의 내용을 그대로 반환하도록 만든다. 이는 데이터 유출에 해당한다.
파일 시스템에 임의 파일 쓰기RSC는 Node.js 런타임 위에서 실행되지만, 프레임워크 자체가 파일 시스템에 쓰기 권한을 부여하거나 fs.writeFile 같은 API를 호출하도록 설계되지 않았다. 취약점은 응답 데이터를 조작하는 것이지, 서버 프로세스에 새로운 파일을 생성하도록 하는 것이 아니다.
.sh, .gz 등 파일 업로드RSC는 입력 검증이나 멀티파트 업로드와는 무관한 렌더링 파이프라인이다. 따라서 이 취약점만으로 파일 업로드 엔드포인트가 열리지는 않는다.
쉘 스크립트 실행 / 바이너리 실행 (예: XMRig)RSC는 React 컴포넌트를 순수하게 JSX → HTML 로 변환하는 과정만 수행한다. 실행 가능한 바이너리를 호출하거나 child_process.exec 등을 자동으로 호출하게 만드는 로직은 포함되지 않는다.

핵심 요약: CVE‑2025‑55182는 **“코드·데이터 유출”**에 국한된 취약점이며, 원격 코드 실행(RCE)이나 파일 생성을 직접 제공하지 않는다.


2️⃣ 왜 파일이 생성됐을 가능성이 높은가?

가능성설명
Magento 2 취약점Magento는 오래된 PHP 기반 CMS이며, 파일 업로드·디렉터리 탐색·RCE와 관련된 다수의 CVE가 존재한다. 특히 플러그인/모듈이 잘못된 파일 검증을 수행하면 .sh, .gz, 바이너리 등을 서버에 심을 수 있다.
SSH·SFTP 침해강력하지 않은 비밀번호·키, 혹은 공개된 SSH 포트가 있으면 공격자가 직접 로그인해 파일을 배치할 수 있다.
잘못된 파일 권한·디렉터리 설정www-data 혹은 node 사용자가 쓰기 가능한 경로가 웹 루트에 존재하면, 업로드된 파일(예: 이미지)이나 임시 파일을 악용해 스크립트를 심을 수 있다.
다른 Node.js 라이브러리 취약점next 자체가 아니라 next-auth, multer, sharp 등 파일 처리와 관련된 서드파티 패키지에 RCE가 존재할 수 있다.
CI/CD·배포 파이프라인 오염자동 배포 스크립트가 외부 레포지토리를 git pull 하는 과정에서 악성 커밋을 받아 파일을 생성할 가능성도 있다.

3️⃣ 조사·대응 체크리스트

  1. 서버 로그 확인

    • auth.log, secure, ssh 로그인 기록 → 비정상적인 IP·시간대.
    • nginx/access.log 혹은 apache/access.log/upload, /admin, /api 등 파일 업로드 시도.
    • next 로그 (next.log 혹은 stdout) → 에러 스택에 fs.writeFile, child_process 호출 흔적.
  2. 파일 무결성 검사

    • git status 혹은 git diff 로 프로젝트 루트에 비정상적인 파일이 추가됐는지 확인.
    • find /path/to/app -type f -perm -u+w 로 쓰기 가능한 파일·디렉터리 목록 파악.
  3. Magento 로그

    • var/log/system.log, exception.log 등에서 파일 업로드 혹은 디렉터리 탐색 시도 기록을 찾는다.
  4. 패키지 버전 확인

    • npm ls next → 최신 LTS 버전(예: 14.x 이상) 사용 여부.
    • npm audit 로 알려진 취약점이 있는 서드파티 패키지 확인.
  5. 네트워크·방화벽

    • 외부에서 직접 접근 가능한 포트(22, 80, 443 등)와 IP 제한 설정을 검토.
    • Fail2Ban 등 로그인 시도 차단 도구가 정상 동작하는지 확인.
  6. 임시 파일·프로세스 모니터링

    • lsof | grep deleted 로 삭제된 파일이 아직 열려 있는지 확인.
    • ps aux | grep xmrig 로 XMRig 프로세스가 실행 중인지 탐색.
  7. 복구·예방

    • 코드베이스를 깨끗한 커밋으로 되돌리고, 모든 비정상 파일을 삭제.
    • SSH 키 교체·비밀번호 정책 강화, 2FA 적용.
    • Magento 최신 보안 패치 적용 및 불필요한 모듈 비활성화.
    • Next.js에서 RSC 비활성화(experimental.serverComponents: false) 혹은 최신 버전으로 업그레이드.
    • 파일 업로드 로직에 MIME 타입 검증, 확장자 화이트리스트, 바이너리 스캐닝 도입.

4️⃣ 결론

  • CVE‑2025‑55182React Server Components가 내부 파일을 노출하게 만드는 정보 유출 취약점이며, 파일 쓰기·실행 같은 행동을 직접 트리거하지 않는다.
  • 서버에 .sh, .gz, XMRig 바이너리 등이 존재한다면 다른 경로(예: Magento 2 취약점, SSH 침해, 잘못된 파일 업로드 로직 등) 를 통해 침투했을 가능성이 높다.
  • 위 체크리스트를 따라 로그·권한·패키지를 전반적으로 검증하고, 필요 시 전체 시스템 재배포보안 강화 조치를 취하는 것이 바람직하다.

추가 참고

필요한 경우, 포렌식 전문가에게 서버 이미지 전체를 전달해 상세 분석을 진행하는 것을 권장한다.

Back to Blog

관련 글

더 보기 »