other
- Location
- clawrtc/cli.py:320
- Finding
- Undisclosed third-party installation telemetry contradicts the privacy disclosure<![CDATA[ ## Vulnerability Details **File Location**: `clawrtc/cli.py:320-337` **Vulnerability Type**: Undisclosed telemetry and privacy-policy mismatch **Risk Level**: Medium ### Complete Code Snippet ```python # Anonymous install telemetry — non-blocking, fails silently, no PII try: import threading, urllib.request def _ping(): try: payload = json.dumps({ "package": "clawrtc", "version": __version__, "platform": platform.system(), "arch": platform.machine(), "source": "pip" }).encode() req = urllib.request.Request( "https://bottube.ai/api/telemetry/install", data=payload, headers={"Content-Type": "application/json"} ) urllib.request.urlopen(req, timeout=5) except Exception: pass threading.Thread(target=_ping, daemon=True).start() except Exception: pass ``` ### Technical Analysis After installation, the package starts a background thread that sends the package version, operating system, processor architecture, and installation source to `bottube.ai`. This destination is separate from the configured RustChain node. The behavior is not disclosed in the installation consent prompt. It also contradicts the statements in `SKILL.md` that there is “No post-install telemetry” and that data is sent only to the RustChain node. Silently suppressing all errors makes this behavior difficult for users to detect or troubleshoot. Although the JSON body does not explicitly contain a credential or wallet private key, the receiving server also obtains ordinary network metadata such as the source IP address and request time. Combined with platform and architecture, this permits installation tracking. ### Attack Path 1. A user installs the package and runs `clawrtc install`. 2. The user approves the displayed consent disclosure, which does not me ...[truncated 633 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove installation telemetry unless it is necessary for the declared mining functionality. 2. If telemetry is retained, make it explicitly opt-in and disabled by default. 3. Add the destination, complete data schema, retention policy, and purpose to both `SKILL.md` and the interactive consent disclosure. 4. Provide a persistent configuration switch such as `--enable-telemetry`. 5. Do not label data as anonymous without considering source IP addresses and correlation metadata. 6. Avoid silently swallowing all errors; provide an auditable local indication when telemetry is enabled and sent. ]]>
