Skip to content

Dashboard: route XvB stats through Tor + gate behind XVB_ENABLED (IP↔wallet leak) #163

Description

@VijitSingh97

Part of #160 (privacy egress epic).

The worst leak in the stack: the dashboard fetches XvB stats over clearnet with the operator's wallet address as a query param, from a network_mode: host container — correlating real IP ↔ Monero wallet. And it's not gated by XVB_ENABLED, so disabling XvB doesn't stop it.

build/dashboard/mining_dashboard/client/xvb_client.py:37requests.get("https://xmrvsbeast.com/cgi-bin/p2pool_bonus_history.cgi?address=<WALLET>"), called unconditionally from service/data_service.py:482 (~every 5 min).

Changes

  • Route through Tor. requests.get(..., proxies={"https": "socks5h://172.28.0.25:9050"}) — the host-net dashboard can reach the bridge Tor SOCKS at 172.28.0.25:9050; socks5h resolves the hostname via Tor too (no local DNS leak). Add the requests[socks]/PySocks dependency to the dashboard image. xmrvsbeast still receives the wallet (inherent to the query) but no longer tied to your IP.
  • Gate behind ENABLE_XVB in data_service so turning XvB off actually stops the egress.
  • Remove dead code: TARI_EXPLORER_URL in config/config.py:135 (defined, never called).

Acceptance

  • With XvB on, tcpdump on the host shows the xmrvsbeast request exiting via Tor (to 172.28.0.25:9050), not direct to xmrvsbeast over clearnet.
  • With xvb.enabled: false, no request to xmrvsbeast.com is made at all.

Labels: dashboard, security · Milestone: v1.0

Related issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    dashboardMining dashboard web UIsecuritySecurity-sensitive issue or hardening

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions