npm open 패키지의 PowerShell 인자 이스케이프 결함은 공격자가 조작된 URL로 윈도우 시스템의 PowerShell 명령어를 삽입할 수 있게 합니다. 여기에 MCP Inspector의 OAuth URL 자동 오픈 동작이 결합되면 원격 MCP 서버가 사용자 머신에서 임의의 코드를 실행하는 원격 코드 실행(RCE) 경로로 이어집니다.
CVE-2026-119025 취약점 개요 및 영향 범위
최근 npm의 대표적인 URL 오픈 라이브러리인 open 패키지에서 OS 명령 삽입(OS Command Injection) 취약점이 발견되었습니다. 이 취약점은 CVE-2026-119025로 식별되었으며, VulnCheck(CNA)가 배정해 현재 PUBLISHED 상태로 기록되어 있습니다.
이 결함은 Windows 환경에서 PowerShell로 URL을 열 때 인자 이스케이프 처리가 부실해서 생깁니다. Windows뿐 아니라 WSL(Windows Subsystem for Linux)까지, Windows의 URL 오프너가 동작하는 모든 환경이 공격 대상에 들어갑니다.
취약점에 노출되는 구체적인 버전 범위와 환경은 다음과 같습니다.
| 항목 | 상세 내용 |
|---|---|
| 취약 패키지 | npm `open` 패키지 |
| 영향 범위 버전 | 7.2.0 이상 11.0.0 미만 |
| 취약 플랫폼 | Windows, WSL 등 Windows URL 오프너 동작 환경 |
| 핵심 결함 | PowerShell 인자 이스케이프 처리 결함 |
MCP Inspector와 결합했을 때의 공격 메커니즘
단순한 패키지 결함이지만 특정 AI 도구의 워크플로우와 결합되면 위험성이 크게 커집니다. 보안 어드바이저 GHSA-q978-78c7-phqw에 따르면 MCP Inspector의 동작 방식 자체가 이 취약점을 악용하는 트리거가 될 수 있습니다.
공격 시나리오는 다음 순서로 진행됩니다.
- 원격 서버 설정: 공격자는 원격 MCP 서버를 구축하고, 그 서버가 특정 OAuth 인가 URL을 반환하도록 해둡니다.
- 자동 오픈 트리거: MCP Inspector는 원격 MCP 서버가 지정한 OAuth 인가 URL을 자동으로 엽니다.
- 명령 주입: 이때
open패키지의 PowerShell 이스케이프 결함 때문에 URL 내에 삽입된 악성 명령어가 PowerShell 인자로 넘어가 그대로 실행됩니다. - 원격 코드 실행(RCE): 결국 원격 MCP 서버가 사용자의 로컬 머신에서 임의의 코드를 실행할 수 있는 권한을 획득합니다.
개발자가 신뢰하지 않는 원격 MCP 서버를 연결하는 것만으로 시스템 전체의 제어권이 넘어갈 수 있다는 얘기입니다.
기술적 분석: PowerShell 인자 이스케이프 결함
이 취약점의 핵심은 open 패키지가 Windows 환경에서 외부 URL을 실행하려고 PowerShell 명령을 만들 때 인자(Argument)를 제대로 이스케이프(Escape) 처리하지 않았다는 데 있습니다.
외부 입력값이 포함된 명령어를 셸(Shell)에서 실행할 때는 특수 문자가 명령어로 해석되지 않도록 이스케이프 처리를 하는 게 기본입니다. 그런데 이 패키지의 특정 버전들(7.2.0 이상 11.0.0 미만)은 이 과정에 결함이 있어서, 공격자가 URL 내에 PowerShell의 명령 구분자나 특수 문자를 넣어 원래의 URL 오픈 의도를 벗어난 임의의 OS 명령어를 실행시킬 수 있습니다.
MCP Inspector처럼 URL 오픈 기능을 자동화한 도구는 사용자 개입 없이 취약한 함수를 호출합니다. 그만큼 공격 표면(Attack Surface)이 넓어집니다.
대응 방안: 패키지 업데이트 및 신뢰 경계 설정
이 취약점은 open 패키지 최신 업데이트로 이미 해결되었습니다. 보안 관리자와 개발자는 즉시 다음 조치를 취하면 됩니다.
1. 패키지 버전 업데이트
open 패키지를 v11.0.0 이상의 버전으로 업데이트하세요. v11.0.0 릴리스 노트에는 “Fix PowerShell argument escaping” 항목이 명시되어 있고, 이 버전에서 PowerShell 인자 이스케이프 결함이 수정되었습니다.
2. 종속성 점검 및 업데이트 경로
- 직접 의존성:
package.json에서open패키지의 버전을 확인한 뒤 업데이트합니다. - 간접 의존성: MCP Inspector나 기타 AI 도구, 라이브러리가
open패키지를 내부적으로 쓰고 있다면 그 도구의 최신 버전을 설치하거나npm audit fix등으로 하위 종속성을 업데이트합니다.
3. 시스템 보안 강화 및 주의사항
- 신뢰 경계 설정: 검증되지 않은 원격 MCP 서버에는 가급적 연결하지 않고, 신뢰할 수 있는 서버만 허용하는 화이트리스트 기반 운영 정책을 세워 둡니다.
- 환경 격리: 특히 WSL이나 Windows 환경에서 개발 도구를 쓸 때는 최소 권한 원칙을 적용해 임의 명령 실행 시 피해 범위를 최소화합니다.
CVE-2026-119025는 단순한 라이브러리 버그를 넘어 현대적인 AI 도구 생태계(MCP 등)와 결합했을 때 치명적인 RCE로 발전할 수 있는 사례입니다. 지금으로선 신속한 버전 업데이트가 가장 확실한 해결책입니다.