🇰🇷 한글 설명
MCP Appium은 AI 어시스턴트에게 Android 및 iOS 모바일 앱 테스트 자동화 도구를 제공하는 MCP 서버입니다. 1.85.10 이전 버전의 createLocatorGeneratorUI 함수는 공격자가 제어할 수 있는 요소 속성(text, content-desc, resource-id, locator 값)을 HTML/JavaScript 컨텍스트 이스케이프 없이 템플릿 리터럴에 삽입하여 generate_locators 도구가 반환하는 MCP UI 리소스에 임의의 HTML/JavaScript 주입이 가능합니다. 피해자의 MCP 클라이언트가 이를 렌더링하면 window.parent.postMessage를 통해 스크린샷 촬영, 페이지 소스 읽기 등 등록된 MCP 도구를 무단으로 실행할 수 있습니다.
💡 쉬운 설명
테스트 대상 앱의 화면 요소 이름에 악성 스크립트를 숨길 수 있습니다. 이 앱을 MCP 도구로 분석하면 그 스크립트가 실행되어 사용자 몰래 다른 기능이 호출될 수 있습니다.
🇺🇸 원문 (English)
MCP Appium is an MCP server that provides AI assistants with tools to automate mobile app testing on Android and iOS. In versions prior to 1.85.10, the createLocatorGeneratorUI function interpolates attacker-controlled element attributes — text, content-desc, resource-id, and locator selector values — directly into an HTML template literal without any HTML or JavaScript context escaping. An attacker who controls the UI of the app under test can inject arbitrary HTML and JavaScript into the MCP UI resource returned by the generate_locators tool. When a victim's MCP client renders this resource, the injected script executes and can invoke arbitrary MCP tools via window.parent.postMessage, leading to unauthorized MCP tool execution such as taking screenshots, reading page source, or any other registered capability. This issue has been fixed in version 1.85.10.
📍 영향받는 시스템
MCP Appium 1.85.10 미만 버전
⚔️ 공격 벡터
테스트 대상 앱의 UI 요소 속성에 악성 HTML/JS를 삽입한 뒤, 피해자가 generate_locators 결과를 MCP 클라이언트에서 렌더링할 때 스크립트가 실행되도록 유도
🛡️ 대응 방법
mcp-appium을 1.85.10 이상으로 업그레이드
🔧 검증 코드
출력된 버전이 1.85.10 미만이면 취약하며, 1.85.10 이상이면 패치가 적용된 것입니다. 아무 결과도 없으면 설치되지 않은 것입니다.
npm list -g mcp-appium 2>/dev/null | grep mcp-appium || npm list mcp-appium 2>/dev/null | grep mcp-appium