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

Clash Party 내장 Sub-Store 위험에 어떻게 대응해야 하나요?

Clash Party 내장 Sub-Store 사용자는 백엔드 버전을 확인해야 합니다. 공개 보고 범위는 2.11.4–2.37.1입니다. 이 글에서는 비활성화, 2.38.0 이상 업데이트, 로컬 접근 제한, 증거 보존과 안전한 되돌리기 절차를 설명합니다.

  • Clash Party
  • Sub-Store
  • 보안 업데이트
  • 로컬 API
  • CORS
이 글의 목차

공개 보고가 다루는 범위부터 확인하기

Sub-Store issue #634 공개 보고서는 영향 범위를 Node 백엔드 2.11.4부터 2.37.1까지로 명시하고, 지나치게 광범위한 교차 출처 접근과 스크립트 처리 기능이 결합될 때의 위험을 설명합니다. 이후 업스트림은 커밋 038745f에서 기본 CORS를 제한하고 일부 Node 스크립트 작업을 제한하며 차단 테스트를 추가했습니다. 2.38.0 릴리스 노트는 해당 issue를 명시적으로 종료합니다.

2026년 9월 12일 현재 Sub-Store 안정 버전은 2.39.6입니다. 이 글은 2.38.0을 업스트림이 #634를 명시적으로 종료한 최소 버전 기준으로 삼고 현재 안정 버전으로 업데이트할 것을 권장합니다. 그렇다고 2.38.0이 모든 네트워크 노출에 인증을 추가한 것은 아니며, 버전 번호만으로 장치가 이미 영향을 받았는지도 판단할 수 없습니다.

Clash Party issue #2134는 v2.0.2 환경에 관한 사용자 보고이며, 이후 프로젝트의 보안 보고 절차에 따라 봇이 닫았습니다. 기여자는 Sub-Store 업데이트를 권했습니다. Clash Party에서는 내장 백엔드를 별도로 업데이트할 수 있으므로 클라이언트 버전만으로 실행 중인 Sub-Store 버전을 확인할 수 없습니다.

v2.0.2 소스 코드는 내장 Sub-Store를 기본적으로 활성화하지만, 실제 상태는 로컬 설정과 수신 결과를 기준으로 확인해야 합니다. 페이지를 열어 본 적이 없거나 메뉴를 숨겼거나 구독 하나를 삭제했다고 해서 백엔드가 비활성화된 것은 아닙니다.

사실부터 구분하기

확인한 정보내릴 수 있는 결론이것만으로 단정할 수 없는 내용
Sub-Store 버전이 2.11.4부터 2.37.1까지임공개 보고 범위에 해당하므로 노출을 중단하고 업데이트해야 함장치가 이미 악용되었거나 감염됨
Clash Party에 v2.0.2가 표시됨내장 백엔드를 계속 확인해야 함모든 v2.0.2 설치본이 같은 백엔드 버전을 사용함
Sub-Store가 2.38.0 이상임#634를 종료한 업스트림 완화 조치가 포함됨모든 네트워크 출처가 인증으로 보호됨
알 수 없는 프로세스나 팝업이 없음현재까지 뚜렷한 증상이 관찰되지 않음이전 백엔드를 계속 실행해도 위험하지 않음
공개 보고서가 설명한 로컬 Sub-Store 요청 경로
  1. 신뢰할 수 없는 웹페이지브라우저에서 연 외부 페이지가 교차 출처 요청을 보냄
  2. 브라우저 Origin 검사이전 Node 백엔드는 기본적으로 지나치게 광범위한 출처를 허용
  3. 로컬 Sub-Store APIClash Party가 시작한 독립 프런트엔드 및 백엔드 서비스
  4. 스크립트 처리 기능구독 처리 컨텍스트에서 스크립트 작업이 실행될 수 있음

2.38.0은 기본 출처 범위를 제한하고 일부 스크립트 작업을 제한했지만 CORS는 API 인증이 아닙니다. LAN 접근도 꺼야 하며, 버전을 확인할 수 없으면 Sub-Store를 바로 비활성화해야 합니다.

확인하기 전에 Sub-Store 먼저 비활성화하기

Clash Party에서 Sub-Store가 실행 중인데 백엔드 버전을 아직 모른다면 신뢰할 수 없는 웹페이지부터 닫고 공개된 악용 코드를 찾거나 실행하지 마세요. Clash Party의 ‘설정 > Sub-Store’를 열고 ‘Sub-Store 활성화’를 끄세요. 공식 소스 코드에 따르면 이 작업은 내장 프런트엔드와 백엔드 서비스를 중지합니다.

동시에 ‘LAN 접근 허용’이 꺼져 있는지 확인하세요. 이 옵션을 켜면 서비스가 0.0.0.0에 바인딩되어 LAN 장치가 직접 접근할 수 있고, 끄면 127.0.0.1을 사용합니다. 공개 보고에는 브라우저 페이지가 루프백 주소에 접근하는 경로도 포함되므로 LAN 접근을 끄는 것만으로 업데이트를 대신할 수는 없습니다. 다만 네트워크 노출 범위가 더 넓어지는 것은 막을 수 있습니다.

Sub-Store는 구독을 편집, 변환 및 관리하는 도구이지 Mihomo 코어 자체가 아닙니다. 비활성화해도 Clash Party에 이미 가져온 Profile, 정책 그룹, 시스템 프록시 및 TUN은 일반적으로 계속 작동하며, Sub-Store 페이지에서 구독을 처리할 수 없게 될 뿐입니다.

먼저 되돌릴 수 있는 안전한 상태 만들기

  1. 신뢰할 수 없는 웹페이지 닫기

    이 글과 프로젝트 공식 페이지만 열어 두고, 출처를 알 수 없는 요청이나 스크립트 또는 이른바 검사 사이트는 테스트하지 마세요.

  2. 활성화 스위치 끄기

    설정의 Sub-Store 영역으로 이동해 ‘Sub-Store 활성화’를 끄고 프런트엔드와 백엔드가 중지될 때까지 기다리세요.

  3. LAN 접근 끄기

    ‘LAN 접근 허용’이 켜져 있지 않은지 확인하고, 나중에 다시 활성화하더라도 127.0.0.1에만 바인딩하세요.

  4. 재시작 후 일반 프록시 확인하기

    Clash Party를 다시 열고 기존 Profile로 실제 HTTPS 요청을 완료해 Sub-Store 비활성화가 일상적인 프록시 사용을 방해하지 않는지 확인하세요.

실제 백엔드 버전과 수신 주소 기록하기

업데이트를 준비할 때는 먼저 ‘설정 > Sub-Store’에서 내장 백엔드와 사용자 지정 백엔드 중 무엇을 사용하는지 확인하세요. 내장 모드에서는 Clash Party가 로컬 bundle을 시작합니다. 사용자 지정 모드에서는 내장 백엔드를 중지하고 사용자가 입력한 URL에 연결하므로 앱 내 업데이트가 외부 배포 환경의 자체 업그레이드, 수신 제한 및 인증을 대신할 수 없습니다.

내장 백엔드를 사용할 때는 신뢰할 수 없는 웹페이지를 모두 닫은 뒤 Sub-Store를 잠시 활성화하고, 해당 설정 영역의 ‘LAN 접근 허용’은 끈 상태로 유지하세요. Sub-Store 페이지에서 ‘브라우저에서 열기’를 사용하고 화면에 표시된 실제 주소를 기준으로 삼으세요. 모든 장치가 같은 고정 포트를 사용한다고 가정하지 마세요.

Clash Party v2.0.2 소스 코드에 따르면 백엔드는 기본적으로 127.0.0.1:38324부터 사용 가능한 포트를 찾으며, 포트가 사용 중이면 번호를 계속 높입니다. 백엔드 루트 주소를 열면 Sub-Store 응답의 data.version에 실제 버전이 표시됩니다. 버전과 주소만 기록하고 스크립트 매개변수를 보내거나 악용 테스트를 하지 마세요.

버전이 2.11.4부터 2.37.1까지라면 즉시 업데이트하세요. 2.11.4보다 낮아 보고 범위에는 들지 않더라도 이미 크게 뒤처진 버전이므로 현재 안정 버전으로 업데이트해야 합니다. 페이지가 열리지 않거나 버전을 확인할 수 없다면 다시 비활성화 상태로 돌아가고 ‘알 수 없음’을 안전하다고 간주하지 마세요.

백엔드 모드부터 구분하기

현재 모드실행 주체올바른 대응
내장 백엔드Clash Party 로컬 서비스앱 내 업데이트, Sub-Store Allow LAN 끄기, 로컬 버전 확인
사용자 지정 백엔드사용자가 입력한 외부 배포배포 환경에서 별도로 업데이트하고 수신 범위를 제한하며 인증 구성
Sub-Store를 사용하지 않음프런트엔드 및 백엔드 서비스가 없어야 함활성화 스위치를 끄고 재시작 후 중지 상태 확인

백엔드에 2.11.4부터 2.37.1까지의 버전이 표시됨

공개 보고 범위에 해당하므로 로컬 전용 상태를 유지하고 즉시 업스트림 업데이트를 실행하세요.

백엔드에 2.38.0 이상이 표시됨

#634가 공식적으로 종료된 최소 버전을 넘었으므로 현재 안정 버전과 수신 범위를 계속 확인하세요.

Clash Party v2.0.2만 알고 있음

정보가 부족합니다. 같은 클라이언트 버전에서도 서로 다른 Sub-Store 백엔드가 실행될 수 있습니다.

브라우저 주소가 127.0.0.1이 아님

서비스를 먼저 비활성화하고 Allow LAN을 끈 다음 설정이나 다른 수신 대기 프로세스를 점검하세요.

페이지나 버전 응답을 열 수 없음

서비스를 반복해서 노출하지 말고 비활성화 상태를 유지한 채 공식 업데이트 경로에서 다시 시도하세요.

Clash Party에서 Sub-Store 업데이트하기

다음 단계는 Clash Party 내장 백엔드에만 적용됩니다. Sub-Store 페이지 오른쪽 위에는 구름 모양의 ‘업데이트 확인’ 버튼이 있습니다. v2.0.2 소스 코드에 따르면 이 기능은 sub-store-org/Sub-Store 공식 Release의 latest에서 백엔드와 프런트엔드 파일을 다운로드하고 완료 후 두 서비스를 다시 시작합니다.

업데이트를 누른 뒤 완료 알림을 기다리고 중간에 클라이언트를 종료하거나 앱 디렉터리의 bundle을 수동으로 덮어쓰지 마세요. 최소 목표는 2.38.0이고 현재 목표는 2026년 9월 11일에 출시된 2.39.6입니다. 이후 더 새로운 안정 버전이 나왔다면 공식 Releases를 기준으로 삼으세요.

Mihomo 코어 업데이트, 구독 새로 고침 또는 동일한 Clash Party 클라이언트 재설치는 어느 것도 Sub-Store 백엔드 확인을 대신할 수 없습니다. Sub-Store는 별도로 다운로드되어 실행되는 구성 요소이므로 자체 페이지에서 업데이트를 완료하고 자체 버전 번호를 읽어야 합니다.

앱 내 공식 업데이트 경로만 사용하기

  1. 로컬에서만 수신하기

    Allow LAN이 꺼져 있는지 확인하고 신뢰할 수 없는 다른 브라우저 페이지도 닫으세요.

  2. 업데이트 확인 누르기

    Sub-Store 페이지 오른쪽 위의 구름 모양 버튼을 누르고 다운로드, 재시작 및 완료 알림을 기다리세요.

  3. 버전 다시 읽기

    페이지에 표시된 실제 백엔드 주소를 다시 사용해 data.version이 2.38.0 이상인지 확인하세요.

  4. 업데이트 실패 시 비활성화하기

    다운로드, 재시작 또는 버전 확인에 실패하면 ‘Sub-Store 활성화’를 끄고 다운그레이드하거나 서드 파티 출처에서 파일을 복사하지 마세요.

업데이트 후 버전, 수신 상태 및 비활성화 스위치 확인하기

업데이트 성공 알림은 첫 단계의 확인일 뿐입니다. Clash Party를 다시 시작한 뒤 Sub-Store 페이지에서 실제 백엔드 주소와 data.version을 다시 읽어 버전이 이전 값으로 돌아가지 않았는지 확인하세요. 동시에 주소가 LAN 주소나 0.0.0.0이 아니라 127.0.0.1을 사용하는지도 확인하세요.

그런 다음 ‘Sub-Store 활성화’를 끄고 프런트엔드와 백엔드 페이지에 더 이상 접근할 수 없는지 확인한 뒤 기존 Profile로 실제 HTTPS 요청을 완료하세요. 이렇게 하면 비활성화 스위치가 독립 서비스를 실제로 중지한다는 점과 일반 프록시가 Sub-Store의 지속 실행에 의존하지 않는다는 점을 함께 확인할 수 있습니다.

보안 확인 체크리스트

  • 실제 Sub-Store 백엔드 버전이 2.38.0 이상이며 현재 공식 안정 버전과 대조함
  • Clash Party 재시작 후에도 새 버전 값이 유지됨
  • ‘LAN 접근 허용’이 꺼져 있고 화면에 표시된 백엔드 호스트가 127.0.0.1임
  • ‘Sub-Store 활성화’를 끈 뒤 프런트엔드 및 백엔드 서비스에 더 이상 접근할 수 없음
  • Sub-Store가 비활성화된 상태에서도 기존 Profile, 시스템 프록시 또는 TUN으로 실제 요청을 완료할 수 있음
  • 사용자 지정 백엔드를 사용할 때 외부 배포 환경에서 버전, 수신 범위 및 인증을 별도로 확인함
  • PoC, 알 수 없는 스크립트 또는 서드 파티 보안 검사 페이지를 실행하지 않음

영향이 의심되면 증거부터 보존하기

버전이 보고 범위에 해당한다고 해서 이미 악용되었다는 뜻은 아닙니다. 알 수 없는 프로세스, 비정상 네트워크 연결, 시스템 보안 소프트웨어 경고, 설정이나 자격 증명의 비정상 변경 같은 증거가 있을 때만 장치 침해 가능성이 있는 사고로 격상해야 합니다. 이때 업데이트는 이후의 진입 경로만 막을 뿐 이미 존재하는 프로그램을 삭제하거나 유출된 자격 증명을 복구할 수 없습니다.

먼저 Sub-Store를 비활성화하고 장치의 네트워크 연결을 끊은 뒤 Clash Party 및 Sub-Store 버전, 수신 주소, 경고 시각과 의심스러운 현상을 기록하세요. ‘정리’를 위해 로그, 설정 또는 알 수 없는 파일을 즉시 삭제하지 마세요. 영향 범위를 판단하는 중요한 증거일 수 있습니다.

운영체제 또는 조직에서 승인한 보안 도구로 전체 검사를 수행하세요. 구독 URL, 노드 자격 증명, WebDAV, GitHub Token 또는 기타 키를 이 장치에서 사용했다면 신뢰할 수 있는 장치에서 기존 자격 증명을 폐기하고 다시 발급하세요. 로그를 공유하기 전에는 민감 정보를 제거한 사본을 만드세요. 무결성을 확인할 수 없다면 공식 출처에서 시스템 또는 클라이언트를 다시 설치하고 안전하다고 확인된 설정만 복원하세요.

사고 대응 최소 조치

  • Sub-Store를 비활성화하고 영향을 받은 장치의 추가 네트워크 연결을 제한함
  • 버전, 수신 주소, 타임라인, 경고 및 의심스러운 연결을 기록함
  • 원본 로그와 설정을 보존하고 공개용 사본에서 민감 정보를 제거함
  • 신뢰할 수 있는 시스템 보안 도구로 검사를 완료함
  • 노출되었을 수 있는 구독 Token과 클라우드 자격 증명을 신뢰할 수 있는 장치에서 교체함
  • 무결성을 확인할 수 없을 때 이전 앱 디렉터리를 새 환경에 그대로 복사하지 않음

업데이트 실패 시 비활성화하고 이전 백엔드로 되돌리지 않기

2.38.0 이상에서 일부 구독 변환이나 스크립트가 더 이상 작동하지 않더라도 기능을 복구하려고 2.37.1 또는 그 이전 버전으로 다운그레이드하지 마세요. 먼저 Sub-Store를 끄고 정상 작동이 확인된 Clash Party Profile을 계속 사용하세요. 구독을 복원해야 한다면 신뢰할 수 있는 서비스 제공자로부터 원본 링크를 다시 받거나 업그레이드 전에 만든 안전한 백업을 가져오세요.

새 버전이고 Allow LAN이 꺼져 있으며 수신 주소가 127.0.0.1로 제한된 조건에서만 Sub-Store를 다시 켜서 테스트하세요. 서드 파티 스크립트가 제한된 이전 동작에 계속 의존해야 한다면 전체 로컬 API 제한을 완화하지 말고 해당 스크립트 사용을 중단한 뒤 유지관리자에게 업데이트를 요청하세요.

되돌릴 수는 있지만 위험 버전으로 돌아가지는 않기

  1. 독립 서비스 중지

    Sub-Store를 비활성화하고 프런트엔드와 백엔드가 중지되었는지 확인하세요.

  2. 사용 가능한 Profile 복원

    앱 안에서 여전히 작동하는 설정을 사용하거나 업그레이드 전에 저장한 안전한 사본을 가져오세요.

  3. 일상 프록시 확인

    정상 작동이 확인된 노드 하나를 고정하고 시스템 프록시 또는 TUN과 실제 요청을 각각 확인하세요.

  4. 호환성 수정 기다리기

    Sub-Store와 관련 스크립트의 공식 업데이트를 확인하고 2.37.1 또는 그 이전 bundle로 되돌리지 마세요.

앞으로는 구성 요소 버전으로 재확인하고 클라이언트 이름만으로 추정하지 않기

이번 위험의 핵심 대상은 Clash Party가 시작한 Sub-Store Node 백엔드이며 Mihomo 코어나 이름에 Clash가 들어간 모든 클라이언트가 아닙니다. 이후 재확인할 때는 Clash Party 버전, Sub-Store data.version, Allow LAN 상태 및 실제 수신 주소를 함께 기록해야 합니다.

공식 2.38.0 릴리스에서 #634를 종료했으며, 2.39.6은 이번 확인 시점의 현재 안정 버전입니다. Clash Party #2134는 여전히 사용자 보고일 뿐입니다. 이후 업스트림이 새로운 보안 공지, 인증 방식 또는 Clash Party 통합 버전을 발표하면 새 공식 Release, 커밋 및 설명을 기준으로 결론을 갱신해야 합니다.

장기 유지관리 기록

기록 항목필요한 이유재확인 시점
Sub-Store data.version독립 백엔드가 최소 수정 버전에 도달했는지 판단앱 내 업데이트 후마다
Allow LAN 및 수신 주소API가 LAN까지 노출되지 않았는지 확인네트워크 또는 설정 변경 후
Clash Party 버전화면과 업데이트 경로 이해클라이언트 업그레이드 후
공식 Release 및 보안 안내사용자 보고를 공식 결론으로 다루지 않기 위해새 버전이나 새 경고가 나타날 때

참고 자료