/

CVE-2026-97871

Severity:

HIGH RISK

(7.3)

Code Injection (CWE-94) in Zhonglun CloudPos JSBridge

CVE-2026-97871

Deferred

Vulnerability type

Category:

Code Injection

CWE:

CWE-74, CWE-94

Impact:

Potential Remote Code Execution

Severity:

HIGH RISK

(7.3)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A code injection vulnerability in Zhonglun CloudPos allows attacker-controlled URL input to reach the OpenLocalBrowser function in the JSBridge component. When the affected function processes a manipulated URL, a remote attacker may cause unintended code execution under the privileges of the application.

Affected context

The vulnerability occurs in Zhonglun CloudPos deployments up to version 3.0.1.76 where the JSBridge component exposes the OpenLocalBrowser function and accepts URL arguments without sufficiently restricting their content or behavior. Risk depends on whether an attacker can reach the relevant interface and provide or influence the URL value.

Exploit preconditions

  • Attack surface: The JSBridge component and its OpenLocalBrowser function
  • Required access: Network access to an exposed application interface that can influence the URL argument
  • Trigger point: Processing of attacker-controlled input by OpenLocalBrowser
  • Why exploitation is possible: The supplied URL is handled in a way that permits injected code or commands to be interpreted rather than treated solely as data

Why this happens

The underlying bug is insufficient separation between untrusted URL data and executable or interpreted content. The OpenLocalBrowser function appears to pass attacker-influenced input into a browser-launching or related execution path without adequate allowlisting, context-aware encoding, or validation. This maps primarily to CWE-94, Code Injection, with CWE-74 also relevant where special elements are accepted and interpreted by a downstream component.

Potential impact

  • An attacker may execute code in the context of the affected application
  • The vulnerability could enable unauthorized access to local data or services
  • Application integrity and confidentiality may be compromised
  • A compromised host could potentially be used for lateral movement or follow-on attacks

General mitigation guidance

Mitigation generally focuses on treating URL values as untrusted data and

preventing them from reaching executable or interpreted contexts.

Common defensive patterns include:

  • Allowlisting permitted URL schemes, hosts, ports, and path formats
  • Rejecting control characters, metacharacters, and unexpected URL encodings
  • Using browser-launch APIs that do not invoke shell or interpreter processing
  • Applying context-appropriate encoding and canonicalization before use
  • Enforcing strict input schemas and validating after canonicalization
  • Running the application with least privilege and isolating browser or helper processes
  • Restricting network exposure of JSBridge interfaces where practical

How teams detect issues like this

Detection approaches may include:

  • Static analysis for URL input flowing into process, shell, browser, or interpreter launch APIs
  • Code review checks for string concatenation involving external URL values
  • Verification that URL validation uses allowlists rather than blocklists
  • Dynamic testing with malformed schemes, encoded delimiters, and unexpected URL components
  • Runtime monitoring for unusual child-process creation or outbound connections from CloudPos
  • CI policy checks that flag unsafe execution APIs and missing input validation

Sources

SourceLink
github.comgithub.com/user-attachments/files/30580490/CloudPos.CefSharp.RCE.docx
github.comgithub.com/xy-f0/CVE/issues/5
vuldb.comvuldb.com/cve/CVE-2026-97871
vuldb.comvuldb.com/submit/911849
vuldb.comvuldb.com/vuln/409887
vuldb.comvuldb.com/vuln/409887/cti

Frequently asked

questions

The disclosure describes remote exploitation. In practice, exploitation depends

on network reachability of the affected JSBridge functionality and the ability

to influence the URL argument.

The available information does not establish a specific authentication

requirement. Exposure of the relevant interface and permission to submit or

influence URL input are the important conditions.

Treat URL values as untrusted, allowlist acceptable destinations and schemes,

and use APIs that pass data without shell or interpreter evaluation.

Combine strict input validation, secure API usage, least-privilege execution,

interface exposure controls, and automated analysis of data flows into

process-launching or browser-invocation functions.

Find out what's already
exploitable in your codebase.