Security & Privacy · Clash Technical Blog

How to Handle the Clash Party rule-providers Command-Injection Risk

Clash Party v2.0.3 fixes an issue where a malicious rule-providers configuration could execute commands. This guide defines the trigger conditions and covers immediate containment, an official upgrade, verification without a PoC, evidence preservation after suspected exposure, and a safe fallback.

  • Clash Party
  • v2.0.3
  • rule-providers
  • Command injection
  • Security update
On this page

Confirm the trigger conditions for this risk first

The official Clash Party v2.0.3 release notes explicitly fix a security issue in which a malicious rule-providers configuration could execute arbitrary commands. The corresponding commit 588aaa6 explains that the old convertMrsRuleset implementation concatenated rule-providers.behavior and the ruleset path into a shell command.

behavior comes from the active configuration, which may be supplied by a user's subscription YAML. A malicious or compromised subscription can insert an abnormal behavior value. The fix commit also notes that, on Windows, a ruleset path containing embedded double quotes could break the old command's quoting boundary.

If the user then opens the corresponding MRS ruleset in the resource viewer, the old implementation may let the operating-system shell interpret those values and execute a command with the privileges of the current Clash Party user.

The fix replaces shell-string execution with an execFile argument array and restricts behavior to the Mihomo-supported values domain, ipcidr, and classical. It fixes Clash Party's ruleset-conversion path, not the Mihomo rule-providers format itself, and it is not a general vulnerability in every Clash client.

Upstream has not published an earliest affected version, CVE, GHSA, severity rating, or conclusion about exploitation in the wild. Seeing an older version or an unknown subscription alone does not prove that a device was exploited. However, if the actual version is below v2.0.3, the configuration source is untrusted, and the corresponding MRS resource was opened, contain the exposure and upgrade immediately as described here.

Quick scope check

Current situationWhat You Can ConcludeNext step
Actually running Clash Party v2.0.3 or laterIncludes this upstream fixContinue checking the configuration source and actual version
Version below v2.0.3 with a subscription from an unknown sourceDoes not prove that this fix is included; treat it as potentially affectedStop opening the resource and upgrade
Using only the Mihomo core or another clientDoes not mean this Clash Party implementation appliesJudge by evidence from the client actually in use
Unknown processes, alerts, or configuration changes appearEscalate to a security incidentDisconnect, preserve evidence, and rotate credentials
No obvious pop-up or anomalyDoes not prove the old path is safeStill complete the version and source checks

Immediately isolate the suspicious Profile and ruleset viewer

If you cannot yet confirm the version, close Clash Party's ruleset resource viewer first and do not click the suspicious rule-provider again. Pause automatic updates and use of the suspicious Profile, then switch to a configuration you saved and whose source you previously verified. If you cannot switch safely, quit Clash Party completely.

Do not edit behavior in the suspicious configuration and keep testing, and do not upload the entire subscription to an online scanner. A subscription URL may contain a token, while ruleset addresses, node credentials, and script contents may expose account or network details.

If the system already shows an unknown command window, unfamiliar process, security-software alert, unexpected outbound connection, or modified file, disconnect the device from the network immediately and follow the incident-response steps later in this guide. Upgrading the application alone cannot prove that an already executed command has been undone.

Create a contained state that you can safely roll back

  1. Close the resource viewer

    Do not open unknown MRS rulesets again or use any supposed online vulnerability-check page.

  2. Disable the suspicious configuration

    Pause automatic updates and use of the Profile. If you need connectivity, switch only to a configuration with a known source that was verified before the upgrade.

  3. Preserve the minimum evidence

    Record the Clash Party version, Profile name, subscription source, approximate time the resource was opened, and the first anomaly. Do not run a cleanup.

  4. Decide whether to disconnect based on symptoms

    Disconnect immediately if you find an unknown process, alert, outbound connection, or file change. If there are no signs of intrusion, keep the resource viewer closed and proceed with the official upgrade.

Record the actual version, configuration source, and available evidence

Read the actual application version from Clash Party's About or update page, and record the operating system and installation architecture. Do not rely only on the download filename, an old screenshot, or the Mihomo core version; this fix is in the Clash Party application itself.

Without opening the ruleset resource contents, record whether the suspicious Profile was imported manually, loaded from a local file, or received through a remote subscription; also record its latest update time and whether rule-providers contains an MRS resource.

Record only the provider name, type, behavior, format, and a redacted source domain or path. On Windows, also note whether the path contains unexpected double quotes. Do not copy node passwords or the subscription token.

Preserve Clash Party logs, operating-system security logs, and a read-only copy of the current configuration. Without evidence of an anomaly, do not treat every normal mihomo child process, rules download, or temporary file as an intrusion. If there is a clear alert, do not delete files or reinstall first and overwrite the timeline.

Pre-upgrade record checklist

  • The actual Clash Party version, operating system, and CPU architecture are recorded
  • The source and latest update time of the suspicious Profile are recorded
  • Whether the corresponding MRS ruleset resource was opened is recorded on the timeline
  • The public copy has the subscription token, node credentials, secret, and real server addresses removed
  • Original logs and configurations are stored in a private, read-only location and were not overwritten by cleanup

Upgrade to v2.0.3 from the official release

Clash Party v2.0.3 was released on 9/20/2026, and both the official release notes and commit 588aaa6 include this fix. The minimum target is to actually run v2.0.3. If upstream later provides a newer stable release, confirm that it still contains this commit.

Choose an installer that matches the system and architecture from the official mihomo-party-org/clash-party release. On Windows, distinguish x64, ia32, and ARM64; on macOS, distinguish Intel and Apple Silicon; on Linux, also choose the DEB, RPM, or PACMAN format used by the current distribution.

Quit the old application completely and keep a backup of the current settings before upgrading. Do not obtain a same-named installer from a search ad, file-sharing drive, or chat attachment, and do not overwrite individual v2.0.3 program files merely to retain an old plugin.

After installation, reopen the About page and confirm the actual version. Updating the Mihomo core, refreshing a subscription, or replacing only a ruleset does not replace upgrading the Clash Party application.

Complete the official upgrade

  1. Confirm the system and architecture

    Choose the official v2.0.3 asset for the current device; do not guess another architecture from the filename.

  2. Keep a private backup

    Save copies of the settings and trusted Profiles. Keep a suspicious configuration only as read-only evidence; do not restore it directly into the new environment.

  3. Quit the old application completely

    Confirm that the tray process and the main Clash Party application have exited, then upgrade with the official installer.

  4. Read the actual version

    After restarting, confirm in the application that the version is not below v2.0.3, and record the upgrade completion time.

Obtain a trusted subscription again and inspect rule-providers

Do not immediately re-enable the original suspicious Profile after the upgrade. If a remote subscription may have been compromised or its source cannot be confirmed, contact the service provider to verify the official address, invalidate the old subscription token, and issue a new one. Rotate the token on a trusted device.

Inspect rule-providers in the new configuration. Mihomo's documentation lists domain, ipcidr, and classical as the three general behavior values, but format: mrs supports only domain and ipcidr. classical can be used with other supported formats and must not be combined with MRS.

Do not load any value that contains shell operators or command fragments, or that violates the required format/behavior pairing. Also verify the domain, path, update channel, and expected format of each provider URL.

Restore nodes and rules only from a new configuration with a known source. Do not copy suspicious YAML, cached MRS files, or unknown scripts back unchanged. When comparison is necessary, inspect text differences in an offline, read-only copy rather than clicking the resource viewer and triggering conversion.

rule-providers review boundaries

CheckExpected boundaryAction when abnormal
General behaviordomain, ipcidr, or classicalDisable the Profile; do not guess a replacement value
format: mrsPair only with domain or ipcidrDo not use classical + mrs; contact the provider for a correction
Windows pathContains no abnormal characters such as embedded double quotesPreserve redacted evidence and stop opening the resource
Provider sourceAn address explicitly published by the service or projectReissue the subscription and verify the domain
MRS cacheDownloaded again from a trusted configurationPreserve the evidence hash and timestamp of the suspicious copy before deleting it
Subscription tokenUsed only in private configurations and the clientRevoke and reissue it from a trusted device

Verify v2.0.3 and a real connection without running a PoC

The first security acceptance check is that the actual Clash Party version is not below v2.0.3. The second is to import only a Profile with a known source, a valid format/behavior pairing, and a normal path, then confirm that the ruleset list loads normally. There is no need to construct a malicious value to prove that the filter works.

Open one known MRS resource in a trusted Profile and confirm that it uses domain or ipcidr, that the resource viewer can display the rules, and that the application does not launch an unexpected command interpreter or unknown child process. Then select a known working node and verify the subscription update, a rule match, and one real HTTPS request.

Finally, quit and restart Clash Party completely, then check the version and Profile again. The correct version, a working rules resource, and a successful real request must all be present to show that the upgrade went beyond the installer screen.

v2.0.3 security-update acceptance checklist

  • The Clash Party version actually running is not below v2.0.3
  • Only Profiles with known sources, valid format/behavior pairings, and normal paths were restored
  • A trusted MRS resource can be viewed, and no PoC or unknown script was run
  • No unexpected command interpreter, unknown child process, or new security alert appeared
  • The subscription update, rule match, and real HTTPS request all completed
  • The version and trusted Profile remain correct after a restart

Treat suspected command execution as a security incident

If an unknown command window, unfamiliar process, unexpected outbound connection, operating-system security alert, startup item, or modified file appears around the time a rules resource was opened, do not treat this as an ordinary client upgrade. Disconnect from the network, preserve the device's current state, and record the timeline, processes, connections, alerts, and file paths.

Run an offline or full scan with security tools approved by the operating-system vendor or your organization. Revoke and reissue the subscription token, node credentials, WebDAV credentials, GitHub Token, browser sessions, and any other credentials accessible to the current user from another trusted device.

Upgrading to v2.0.3 only closes the old conversion path; it cannot remove a program that already ran or recover leaked credentials. If system integrity cannot be confirmed, reinstall the operating system and client from official media, restore only verified clean data, and do not copy the entire old application directory back.

Minimum actions for suspected exposure

  • The device is disconnected, and Clash Party and the suspicious Profile are no longer running
  • The version, configuration source, resource-open time, alerts, and unusual connections are recorded
  • Original logs and configurations are preserved, and public copies are redacted
  • A trusted security tool has completed a full scan
  • Potentially exposed tokens and cloud credentials were rotated on a trusted device
  • The old application directory was not restored directly when integrity could not be confirmed

Fall back the affected function, not to a vulnerable version

If v2.0.3 has an installation, startup, or plugin-compatibility problem on the current device, do not downgrade to a version containing the old conversion path merely to restore functionality. Quit Clash Party completely, keep the suspicious Profile disabled, and use another verified, maintained client or a system-proxy arrangement for necessary connectivity.

If you need to continue using Clash Party, keep only an offline backup of trusted configurations and follow later official stable releases and relevant issues. Once a newer version starts normally, restore the system proxy, TUN, subscription updates, and rules-resource viewing one at a time instead of copying the entire old data directory at once.

If the problem occurs only with one third-party ruleset or subscription, ask the provider to fix the configuration rather than loosening behavior validation or re-enabling the old shell execution. When reporting upstream, include the system, architecture, version, first error, and redacted reproduction steps, but do not include the subscription token or an executable payload.

The installed version is still below v2.0.3

Stop using the old instance and check whether another portable copy or old installation directory was launched.

The new version will not start

Preserve the logs and use a maintained alternative client; do not restore the old conversion path.

A trusted ruleset cannot be viewed

Check behavior and the format first, then submit redacted evidence to the rules provider or Clash Party.

The proxy works, but an unknown process or alert appears

Treat it as a security incident; working connectivity cannot rule out command execution.

Treat subscriptions and rulesets as untrusted input going forward

This fix shows that a subscription is more than a node list: it can also provide structured fields such as rule-providers to the client. For long-term maintenance, record the subscription provider, rule-provider domains, behavior values, latest verification time, and current Clash Party version.

Keep application updates enabled or check official releases regularly. When a subscription domain, issuance method, or content structure changes, compare it offline before returning it to a regular Profile. For a ruleset that is no longer maintained or whose source cannot be explained, removing the dependency is more reliable than continuing to rely on client-side filtering.

The official release and fix commit define the factual boundary of this guidance. If upstream later publishes a GHSA, CVE, affected-version range, or new mitigation, update the assessment from that official statement rather than inferring severity or affected scale from a secondary headline.

Long-Term Maintenance Record

Item to recordPurposeWhen to review
Clash Party versionConfirm that the security fix is includedAfter every application upgrade
Profile and subscription sourceIdentify entry points for untrusted configurationsWhen the subscription address or provider changes
rule-providers and behaviorLimit ruleset types and the conversion scopeAfter every configuration-structure change
Official release and commitAvoid treating a secondary report as a maintainer conclusionWhen a new alert or stable release appears

References