보안 및 개인정보 보호 · Clash 기술 블로그

Clash Party rule-providers 명령어 삽입 위험은 어떻게 대응하나요?

Clash Party v2.0.3은 악성 rule-providers 구성으로 명령이 실행될 수 있는 문제를 수정합니다. 의심스러운 리소스를 닫고 구성을 중지한 뒤 공식 출처에서 업데이트하세요. 낯선 프로세스나 경고가 나타나면 네트워크를 끊고 증거를 보관하며 검증을 위해 PoC를 실행하지 마세요.

  • Clash Party
  • v2.0.3
  • rule-providers
  • 명령어 삽입
  • 보안 업데이트
이 글의 목차

구독 출처가 불분명하거나 현재 버전에 수정이 포함되었는지 아직 확인하지 못했다면 MRS 규칙 리소스 보기를 중단하고 의심스러운 설정을 비활성화하세요. 연결이 정상이어도 기존 구현이 명령을 실행했을 가능성을 배제할 수는 없습니다. 낯선 프로세스, 경고 또는 파일 변경이 나타나면 네트워크를 끊고 현재 상태를 보존하세요. 수정이 포함된 업데이트도 이미 실행된 명령을 되돌릴 수는 없습니다.

의심스러운 규칙 세트와 Profile 중지, 이상 징후 발견 시 네트워크 차단

아직 버전을 확인할 수 없다면 먼저 Clash Party의 규칙 집합 리소스 뷰어를 닫고 의심스러운 rule-provider를 더 이상 누르지 마세요. 의심스러운 Profile의 자동 업데이트와 사용을 중지하고 직접 보관하며 출처를 확인한 설정으로 전환하세요. 안전하게 전환할 수 없다면 Clash Party를 완전히 종료합니다.

의심스러운 설정에서 behavior를 바꾼 뒤 계속 시험하지 말고 구독 전체를 온라인 검사 사이트에 업로드하지도 마세요. 구독 URL에는 token이 포함될 수 있으며 규칙 집합 주소, 노드 자격 증명 및 스크립트 내용도 계정이나 네트워크 구조를 노출할 수 있습니다.

시스템에 알 수 없는 명령 창, 낯선 프로세스, 보안 소프트웨어 경고, 비정상 외부 연결 또는 파일 변경이 이미 나타났다면 장치의 네트워크를 즉시 끊고 뒤의 사고 대응 단계로 이동하세요. 이때 앱만 업그레이드해도 이미 실행된 명령이 취소되었다고 증명할 수 없습니다.

낯선 프로세스나 경고가 나타나면 보안 사고로 대응

규칙 리소스를 열기 전후로 알 수 없는 명령 창, 낯선 프로세스, 비정상 외부 연결, 시스템 보안 경고, 시작 항목 또는 파일 변경이 나타났다면 이를 일반적인 클라이언트 업그레이드로 처리하지 마세요. 네트워크 연결을 끊고 장치 상태를 그대로 유지하면서 타임라인, 프로세스, 연결, 경고 및 파일 경로를 기록합니다.

운영체제 또는 조직에서 승인한 보안 도구로 오프라인 검사나 전체 검사를 완료하세요. 구독 token, 노드 자격 증명, WebDAV, GitHub Token, 브라우저 세션 또는 현재 사용자 권한으로 읽을 수 있었던 기타 자격 증명은 다른 신뢰할 수 있는 장치에서 폐기하고 다시 발급해야 합니다.

v2.0.3으로 업그레이드하면 이전 변환 경로만 차단할 수 있으며 이미 실행된 프로그램을 삭제하거나 유출된 자격 증명을 복구할 수는 없습니다. 시스템 무결성을 확인할 수 없다면 공식 미디어에서 시스템과 클라이언트를 다시 설치하고 검증된 안전한 데이터만 복원하세요. 기존 앱 디렉터리 전체를 다시 복사하지 마세요.

MRS 뷰어의 명령 실행 처리에서 발생하는 위험

Clash Party v2.0.3 공식 릴리스 노트에는 '악성 rule-providers 설정이 임의의 명령을 실행할 수 있는' 보안 문제가 수정되었다고 명시되어 있습니다. 관련 커밋 588aaa6에 따르면 이전 convertMrsRuleset 구현은 rule-providers.behavior와 규칙 집합 경로를 shell 명령 문자열에 이어 붙였습니다.

behavior는 실행 설정에서 가져오며 이 설정은 사용자가 구독한 YAML에서 제공될 수 있습니다. 악성이거나 변조된 구독은 비정상 behavior 값을 넣을 수 있습니다. 수정 커밋은 Windows에서 큰따옴표가 포함된 규칙 집합 경로 역시 이전 명령의 따옴표 경계를 깨뜨릴 수 있다고 설명합니다.

사용자가 이후 리소스 뷰어에서 해당 MRS 규칙 집합을 열면 이전 구현에서는 운영체제 shell이 이러한 값을 해석해 현재 Clash Party 사용자 권한으로 명령을 실행할 수 있었습니다.

수정에서는 shell 문자열 실행을 execFile 인수 배열 방식으로 바꾸고 behavior를 Mihomo가 지원하는 domain, ipcidr, classical로 제한했습니다. 수정 대상은 Clash Party의 규칙 집합 변환 경로이며 Mihomo rule-providers 형식 자체나 모든 Clash 클라이언트에 공통된 취약점이 아닙니다.

상위 프로젝트는 영향을 받는 시작 버전, CVE, GHSA, 심각도 또는 실제 악용 여부를 발표하지 않았습니다. 구버전이나 출처를 알 수 없는 구독을 보았다는 사실만으로 장치가 이미 악용되었다고 단정할 수는 없습니다. 다만 실제 버전이 v2.0.3보다 낮고 설정 출처를 신뢰할 수 없으며 해당 MRS 리소스를 연 적이 있다면 이 글의 절차에 따라 즉시 격리하고 업그레이드해야 합니다.

적용 범위 빠른 확인

현재 상황내릴 수 있는 결론다음 단계
실제로 Clash Party v2.0.3 이상 실행 중상위 프로젝트의 이 수정 포함설정 출처와 실제 버전을 계속 확인
버전이 v2.0.3보다 낮고 출처 불명의 구독을 사용한 적 있음이 수정이 포함되었다고 증명할 수 없으므로 잠재적 영향 대상으로 처리리소스를 더 이상 열지 말고 업그레이드
Mihomo 코어 또는 다른 클라이언트만 사용이 Clash Party 구현의 영향을 받는다는 뜻은 아님실제 클라이언트 증거를 기준으로 판단
알 수 없는 프로세스, 경고 또는 설정 변경이 나타남침해 가능성이 있는 사건으로 처리네트워크를 끊고 증거를 보존한 뒤 자격 증명 교체
눈에 띄는 팝업이나 이상 없음이전 경로가 안전하다는 증거는 아님버전과 출처를 기준으로 계속 확인

현재 상태 기록 후 수정이 포함된 정식 버전 설치

Clash Party의 '정보' 또는 업데이트 페이지에서 실제 앱 버전을 읽고 운영체제와 설치 아키텍처를 기록하세요. 다운로드 파일 이름, 이전 스크린샷 또는 Mihomo 코어 버전만 보지 마세요. 이 수정은 Clash Party 본체에 포함되어 있습니다.

규칙 세트 리소스의 내용은 열지 마세요. 의심스러운 Profile이 수동으로 가져온 것인지 로컬 파일인지 원격 구독인지 기록하세요. 구독 출처, 마지막 업데이트 시각, 리소스를 열었던 대략적인 시각, 첫 이상 징후를 보관하고 rule-providers에 MRS 리소스가 있는지 확인하세요. 자료는 읽기 전용 증거로 남기고 정리하거나 삭제하지 마세요.

provider 이름, type, behavior, format 및 민감 정보를 제거한 출처 도메인이나 경로만 기록하세요. Windows에서는 경로에 비정상적인 큰따옴표가 있는지도 확인하고 노드 비밀번호나 구독 token은 복사하지 않습니다.

Clash Party 로그, 운영체제 보안 로그와 현재 구성의 읽기 전용 사본을 보관하세요. 이상 증거가 없다면 정상적인 mihomo 하위 프로세스, 규칙 다운로드나 임시 파일을 모두 침입으로 간주하지 마세요. 명확한 경고가 있더라도 사건 경위를 판단할 기록을 덮어쓰지 않도록 파일을 먼저 삭제하거나 재설치하지 마세요.

Clash Party v2.0.3은 2026년 9월 20일에 출시되었으며 공식 릴리스 노트와 커밋 588aaa6 모두 이 수정을 포함합니다. 최소 목표는 실제로 v2.0.3을 실행하는 것입니다. 이후 공식 프로젝트가 더 새로운 안정 버전을 제공하면 해당 커밋이 계속 포함되어 있는지 확인하세요.

mihomo-party-org/clash-party 공식 Release에서 시스템과 아키텍처에 맞는 설치 파일을 선택하세요. Windows에서는 x64, ia32, ARM64를 구분해야 하고 macOS에서는 Intel과 Apple Silicon을 구분해야 합니다. Linux에서는 현재 배포판이 사용하는 DEB, RPM 또는 PACMAN 형식도 선택해야 합니다.

공식 업그레이드 완료

  1. 시스템과 아키텍처 확인

    시스템과 아키텍처에 맞는 프로젝트 공식 v2.0.3 파일을 선택하세요. 검색 광고, 파일 공유 드라이브 또는 채팅 첨부 파일의 같은 이름 설치 파일은 사용하지 마세요.

  2. 비공개 백업 보존

    설정과 신뢰할 수 있는 Profile의 사본을 보관하세요. 의심스러운 설정은 읽기 전용 증거로만 보존하고 새 환경에 직접 복원하지 않습니다.

  3. 기존 프로그램 완전히 종료

    트레이 프로세스와 Clash Party 주 프로그램이 모두 종료됐는지 확인한 뒤 공식 설치 파일로 업그레이드하세요. 기존 플러그인을 남기려고 프로그램 파일 일부만 덮어쓰지 마세요.

  4. 실제 버전 확인

    다시 시작한 뒤 앱에서 버전이 v2.0.3 이상인지 확인하고 업그레이드 완료 시각을 기록하세요.

Mihomo 코어 업데이트, 구독 새로 고침이나 규칙 세트만 교체하는 작업은 Clash Party 주 프로그램의 업그레이드를 대신할 수 없습니다.

신뢰할 수 있는 구독을 다시 발급받아 rule-providers 확인

업그레이드가 끝나도 기존의 의심스러운 Profile을 즉시 다시 활성화하지 마세요. 원격 구독이 변조되었을 가능성이 있거나 출처를 확인할 수 없다면 서비스 제공자에게 공식 주소를 확인하고 기존 구독 token을 폐기한 뒤 다시 발급받으세요. token 교체는 신뢰할 수 있는 장치에서 수행해야 합니다.

새 설정의 rule-providers를 확인하세요. Mihomo 문서에는 일반 behavior로 domain, ipcidr, classical 세 가지가 나와 있지만 format: mrs는 domain과 ipcidr만 지원합니다. classical은 지원되는 다른 형식에 사용할 수 있으며 MRS와 조합해서는 안 됩니다.

이어 붙이기 기호, 명령 조각 또는 해당 format/behavior 조합에 맞지 않는 내용은 더 이상 불러오지 않아야 합니다. provider URL의 도메인, 경로, 업데이트 경로 및 예상 형식도 확인하세요.

출처가 명확한 새 설정에서만 노드와 규칙을 복원하고 의심스러운 YAML, 캐시된 MRS 파일 또는 출처 불명의 스크립트를 그대로 복사하지 마세요. 비교가 필요하면 오프라인 읽기 전용 사본에서 텍스트 차이를 확인하고 리소스 뷰어를 눌러 변환을 실행하지 않습니다.

의심스러운 MRS 캐시를 삭제하기 전에 증거 해시와 시간을 보관하세요.

PoC를 실행하지 않고 v2.0.3과 실제 연결 검증

보안 검증의 첫 번째 항목은 실제 Clash Party 버전이 v2.0.3 이상인지 확인하는 것입니다. 두 번째는 출처가 명확하고 format/behavior 조합이 올바르며 경로가 정상인 Profile만 가져와 규칙 집합 목록이 정상적으로 불러와지는지 확인하는 것입니다. 필터가 동작함을 증명하려고 악성 값을 만들 필요는 없습니다.

신뢰할 수 있는 Profile에서 이미 알고 있는 MRS 리소스 하나를 열고 domain 또는 ipcidr을 사용하는지 확인하세요. 리소스 뷰어에 규칙이 표시되고 앱이 예상치 못한 명령 인터프리터나 알 수 없는 하위 프로세스를 시작하지 않는지도 확인합니다. 그런 다음 정상 동작이 확인된 노드 하나를 고정하고 구독 업데이트, 규칙 일치 및 실제 HTTPS 요청을 각각 검증하세요.

Clash Party를 완전히 종료하고 재시작한 뒤 버전과 Profile을 다시 확인하세요. 올바른 버전, 정상 규칙 리소스, 실제 요청 성공이 재시작 후에도 유지되어야 합니다.

업데이트 후에도 Clash Party를 사용할 수 없다면 비활성화하고 위험한 버전으로 되돌리지 않기

현재 장치에서 v2.0.3 설치, 시작 또는 플러그인 호환성 문제가 발생해도 기능을 되살리려고 이전 변환 경로가 포함된 버전으로 내리지 마세요. 먼저 Clash Party를 완전히 종료하고 의심스러운 Profile을 비활성화한 상태로 유지한 뒤 검증된 다른 유지보수 중인 클라이언트나 시스템 프록시 방식으로 필요한 네트워크 연결을 복구합니다.

Clash Party를 계속 사용해야 한다면 신뢰할 수 있는 설정의 오프라인 백업만 보존하고 이후 공식 안정 버전과 관련 issue를 확인하세요. 새 버전이 정상적으로 시작되면 시스템 프록시, TUN, 구독 업데이트 및 규칙 리소스 보기를 하나씩 복원하고 기존 데이터 디렉터리 전체를 한꺼번에 복사하지 마세요.

문제가 특정 서드파티 규칙 집합이나 구독에서만 발생한다면 behavior 제한을 풀거나 이전 shell 실행을 다시 활성화하지 말고 제공자에게 설정 수정을 요청하세요. 상위 프로젝트에 보고할 때는 시스템, 아키텍처, 버전, 첫 번째 오류 및 민감 정보를 제거한 재현 절차를 제공하고 구독 token이나 실행 가능한 payload는 첨부하지 마세요.

설치 후 버전이 여전히 v2.0.3보다 낮음

기존 인스턴스 사용을 중지하고 다른 포터블 버전이나 이전 설치 디렉터리가 실행되었는지 확인하세요.

새 버전을 시작할 수 없음

로그를 보존하고 유지보수 중인 대체 클라이언트를 사용하며 이전 변환 경로는 복원하지 마세요.

신뢰할 수 있는 규칙 집합을 볼 수 없음

behavior와 형식을 먼저 확인한 뒤 규칙 제공자 또는 Clash Party에 민감 정보를 제거한 증거를 제출하세요.

프록시는 동작하지만 알 수 없는 프로세스나 경고가 나타남

보안 사고로 처리하세요. 네트워크가 정상 동작한다는 이유로 명령 실행 가능성을 배제할 수 없습니다.

구독 출처 또는 구조 변경 시 확인 기록

이번 수정은 구독이 단순한 노드 목록이 아니라 rule-providers 같은 구조화된 필드도 클라이언트에 제공할 수 있음을 보여 줍니다. 장기적으로 관리할 때는 구독 제공자, rule-provider 도메인, behavior, 마지막 확인 시각 및 현재 Clash Party 버전을 기록하세요.

앱 자동 업데이트를 유지하거나 공식 Release를 정기적으로 확인하세요. 구독 도메인, 발급 방식 또는 내용 구조가 바뀌면 오프라인에서 비교한 뒤 평소 쓰는 Profile에 다시 넣으세요. 유지보수가 중단되었거나 출처를 설명할 수 없는 규칙 세트는 클라이언트 필터링에 계속 의존하기보다 구성에서 참조를 중단하는 것이 더 확실합니다.

이번 판단은 공식 Release와 수정 커밋을 근거로 합니다. 프로젝트가 이후 GHSA, CVE, 영향받는 버전이나 새로운 조치를 공개하면 공식 설명에 따라 기록을 업데이트하고, 제삼자 제목만으로 심각도나 규모를 추측하지 마세요.

참고 자료