소개: 소개: CVE-2025-11953이 리액트 네이티브 보안의 판도를 바꾸는 이유
다음과 같은 경우 리액트 네이티브 개발자 또는 모바일 애플리케이션을 사용하는 IT 보안 전문가라면 다음 사항에 유의해야 합니다. CVE-2025-11953-핵심에 영향을 미치는 중대한 취약성 메트로 개발 서버 다음에서 사용 리액트 네이티브 프로젝트. 이 취약점으로 인해 개발 환경은 다음과 같은 위험에 노출됩니다. 원격 코드 실행(RCE) 공격은 특히 개발 서버를 안전하게 구성하지 않은 사용자에게 심각한 위험을 초래할 수 있습니다.
본질적으로, CVE-2025-11953 는 더블 와미: 기본 구성 결함 그리고 명령 주입 취약점. . 메트로 개발 서버는 React Native 앱 번들링 및 디버깅에 필수적이며, 기본적으로 다음과 같이 바인딩됩니다. 0.0.0.0를 사용하여 서버에 대한 외부 액세스를 허용합니다. 또한 서버의 특정 노출된 엔드포인트는 필터링되지 않은 사용자 입력을 허용하여 공격자가 운영 체제 명령을 삽입할 수 있게 함으로써 다음과 같은 결과를 초래합니다. RCE 완료 호스트 인수인계.
React Native는 크로스 플랫폼 모바일 앱 개발을 위한 선도적인 프레임워크이므로 개발자는 이 취약점으로 인해 발생하는 위험을 과소평가하는 경우가 많습니다. 이 글에서는 다음과 같은 핵심 문제를 분석해 보겠습니다. CVE-2025-11953의 기술적 의미를 살펴보고 위험을 완화하기 위한 실행 가능한 단계를 제공합니다. 또한 개발 환경을 보호하고 안전한 React Native 워크플로를 유지하기 위한 실질적인 측면에 대해서도 다룹니다.
CVE-2025-11953이란? 자세히 살펴보기
JFrog Ltd. 보안 연구팀에 따르면, 이 취약점은 널리 사용되는 NPM 패키지에 영향을 미칩니다. 반응-네이티브-커뮤니티/cli를 사용하여 리액트 네이티브용 메트로 서버를 구동합니다. 이 결함으로 인해 인증되지 않은 공격자가 노출된 엔드포인트에 조작된 POST 요청을 제출할 수 있습니다(예 /open-url) 및 호스트에서 임의의 OS 명령을 실행합니다. JFrog+2nvd.nist.gov+2 핵심 요소:
- CVSS 3.1점: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) nvd.nist.gov
- 영향을 받는 버전: 반응-네이티브-커뮤니티/cli-서버-api 4.8.0부터 20.0.0-alpha.2까지. 20.0.0 버전에서 사용 가능한 패치입니다. 해커 뉴스+1
- 근본적인 문제: Metro 서버가 기본적으로 0.0.0.0에 바인딩됨 그리고 를 통해 사용자 입력을 전달합니다.
open()(열린 npm 패키지에서)를 OS 명령 실행 경로에 추가합니다. CSO 온라인 +1
중요한 이유 일반적인 개발 서버 결함이 로컬호스트로 제한되는 것과 달리 이 결함은 원격 네트워크 벡터. Metro를 실행하는 개발 머신과 CI 에이전트가 위험에 처해 있습니다. 전자 보안 플래닛
| 항목 | 세부 정보 |
|---|---|
| CVE ID | CVE-2025-11953 |
| 취약점 유형 | OS 명령 주입(CWE-78) |
| 영향을 받는 구성 요소 | 리액트 네이티브 CLI의 메트로 개발 서버 |
| 영향을 받는 버전 | React Native ≤ 0.74.1 / Metro ≤ 0.81.0(및 CLI-server-api 4.8.0-20.0.0-alpha.2) |
| 엔드포인트 트리거 | 노출된 HTTP 엔드포인트(예: /open-url, /symbolicate, /debugger-ui) |
| 심각도(CVSS) | 9.8 / AV:N / AC:L / PR:N / UI:N |
| 주요 위험 | 원격 코드 실행 → 개발 시스템 손상 → 내부 네트워크 측면 이동 |

다음은 이 결함을 특히 위험하게 만드는 구체적인 기술적 위험에 대해 자세히 살펴봅니다.:
메트로 서버의 기본 노출
언제 React 네이티브 CLI 를 시작하면 메트로 개발 서버로 설정하면 기본적으로 0.0.0.0즉, 서버가 내부 및 외부의 사용 가능한 모든 네트워크 인터페이스에서 수신 대기 중이라는 의미입니다. 이는 다음이 설치된 컴퓨터에서 서버를 호스팅하는 모든 개발자에게 중대한 보안 위험입니다. 인터넷 액세스.
다음은 이 기본 바인딩을 구성하는 코드 샘플입니다:
자바스크립트:
// Metro 서버 기본 구성(react-native/node_modules/metro/src/server/index.js)
const config = {
host: '0.0.0.0', // 모든 인터페이스에 바인딩합니다.
포트: 8081, // 기본 포트
enableCORS: true // 교차 출처 요청 활성화됨
};
메트로 서버는 다음 대상에만 바인딩해야 합니다. 127.0.0.1 (로컬 호스트)로 설정하여 로컬 개발 머신만 액세스할 수 있도록 합니다. 하지만 이 구성을 사용하면 원격 액세스서버를 위험에 빠뜨릴 수 있습니다.
명령 인젝션 취약점
취약점의 두 번째 부분에는 다음이 포함됩니다. 명령어 주입와 같은 특정 엔드포인트가 /상징화 그리고 /debugger-ui를 사용하여 사용자 입력을 시스템 명령에 직접 전달합니다. 입력 유효성 검사가 없기 때문에 공격자는 악성 명령을 삽입하고 임의의 코드를 실행할 수 있습니다.
예를 들어, 다음과 같은 정당한 요청은 /상징화 는 다음과 같이 보일 수 있습니다:
POST /symbolicate HTTP/1.1
호스트: [target-ip]:8081
콘텐츠 유형: 애플리케이션/json
{
"로그 경로": "/var/log/react-native/crash.log"
}
그러나 공격자는 다음과 같이 추가 명령을 삽입할 수 있습니다:
POST /symbolicate HTTP/1.1
호스트: [target-ip]:8081
콘텐츠 유형: 애플리케이션/json
{
"로그 경로": "/var/log/react-native/crash.log && whoami"
}
이 경우 시스템은 다음 명령을 실행합니다. cat /var/log/react-native/crash.log && whoami를 사용하여 공격자가 서버에서 다음과 같은 임의의 명령을 실행할 수 있습니다. 누가미 를 클릭하면 현재 사용자가 표시됩니다.
CVE-2025-11953의 영향을 받는 리액트 네이티브 버전은 무엇인가요?
취약점이 미치는 영향 React Native 버전 ≤ 0.74.1 그리고 Metro 버전 ≤ 0.81.0. 이러한 버전 또는 이전 버전을 실행 중인 경우 개발 환경이 원격 코드 실행에 노출되지 않도록 즉시 업그레이드하는 것이 중요합니다.
React Native 버전을 확인하려면 실행하면 됩니다:
npm 목록 @react-native-community/cli-server-api
버전이 오래된 경우 실행하여 보안 버전으로 업그레이드하세요:
npm 설치 react-native@latest
React Native를 즉시 업그레이드할 수 없는 경우 다음을 수행할 수 있습니다. Metro 업데이트 독립적으로 실행할 수 있습니다:
npm 설치 metro@latest --save-dev
CVE-2025-11953에 대한 실용적인 완화 전략
즉시 수정: Metro를 로컬 호스트에 바인딩하기
종속성을 즉시 업그레이드할 수 없는 경우 일시적으로 위험을 완화할 수 있습니다. 메트로 서버 에 127.0.0.1. 이렇게 하면 서버가 노출되더라도 외부 공격자가 서버에 접근하는 것을 방지할 수 있습니다.
Metro를 로컬 호스트에 바인딩하려면 실행합니다:
npx react-native start --host 127.0.0.1
이 기능을 영구적으로 사용하려면 다음을 추가하세요. package.json:
"스크립트": {
"start": "react-native start --host 127.0.0.1",
"안드로이드": "리액트 네이티브 런 앤 안드로이드",
"ios": "리액트 네이티브 런-ios"
}
네트워크 보안: 방화벽 사용
또 다른 즉각적인 안전장치는 방화벽 를 사용하여 기본 메트로 포트(8081)에 대한 외부 액세스를 차단할 수 있습니다. 예를 들어 Linux에서는
iptables -A INPUT -p tcp --dport 8081 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j DROP
Windows 사용자의 경우 포트 8081을 다음과 같이 제한하도록 방화벽을 구성합니다. localhost.
펜리전트: 리액트 네이티브 프로젝트를 위한 보안 테스트 자동화하기
리액트 네이티브 개발자로서 다음과 같은 취약점보다 앞서 나가려면 CVE-2025-11953 는 어려울 수 있습니다. 바로 이 지점에서 펜리전트라는 AI 기반 침투 테스트 플랫폼이 등장합니다. 펜리전트 는 다음과 같은 취약점 탐지를 자동화합니다. CVE-2025-11953를 사용하여 React Native 코드베이스와 구성을 스캔하여 잠재적인 위험을 실시간으로 식별합니다.
함께 펜리전트자동화된 침투 테스트 을 개발 파이프라인에 추가하여 배포 전에 프로젝트의 보안을 보장합니다. 이러한 사전 예방적 보안 접근 방식은 비용이 많이 드는 취약점을 방지하고 악의적인 공격으로부터 사용자를 보호하는 데 도움이 됩니다.
결론: CVE-2025-11953으로부터 리액트 네이티브 프로젝트 보호하기
CVE-2025-11953 에 심각한 보안 결함이 노출되었습니다. 메트로 개발 서버 의 리액트 네이티브를 사용하여 공격자가 개발 환경을 쉽게 장악할 수 있습니다. 공격자는 구성 결함 그리고 명령 주입 위험를 통해 개발자는 프로젝트를 보호하기 위한 조치를 취할 수 있습니다.
다음과 같은 위험을 완화하려면 CVE-2025-11953개발자가 해야 합니다:
- 최신 버전으로 업그레이드 리액트 네이티브 그리고 지하철 버전.
- 서버를 다음 주소로 바인딩하는 등의 임시 수정 사항을 구현합니다. localhost.
- 방화벽을 구성하여 Metro의 기본 포트에 대한 액세스를 제한하세요.
또한 다음과 같은 도구를 사용하면 펜리전트 는 보안 테스트를 자동화하여 개발 환경을 안전하게 유지할 수 있습니다. 이러한 전략을 채택하면 다음과 같은 위협으로부터 React Native 프로젝트를 보호할 수 있습니다. 원격 코드 실행 개발 워크플로우의 보안을 유지합니다.
더 많은 보안 모범 사례를 보려면 OWASP 톱 10 그리고 NPM 보안 권고 를 클릭해 지속적인 업데이트를 확인하세요.

