T09 · Insecure Skill Coding Practices
- Location
- references/configuration.md:39
- Finding
- Unauthenticated Metrics Endpoint Exposed on All Network Interfaces## Vulnerability Details **File Location**: `references/configuration.md:39-40`; related exposure instructions appear in `SKILL.md:64-70`, `references/operations.md:106`, and `references/validator-setup.md:43-51` **Vulnerability Type**: T09: Insecure Skill Coding Practices **Risk Level**: Medium **Vulnerable Code Snippet**: ```yaml metrics-address: '0.0.0.0:9184' # Prometheus metrics endpoint # Default: 0.0.0.0:9184 ``` The operational documentation reinforces this configuration: ```text Default endpoint: `http://0.0.0.0:9184/metrics` ``` It also instructs operators to open the corresponding port: ```text | TCP/9184 | Inbound/Outbound | Metrics Scraping | ``` ### Technical Analysis The documented default binds the Prometheus metrics service to `0.0.0.0`, making it listen on every available network interface. The deployment guidance also instructs operators to open TCP port 9184 without documenting authentication, network allowlisting, or an authenticated reverse proxy. The metrics described by the project include consensus progress, MPC session activity, peer states, event-processing lag, checkpoint progress, transaction queue lengths, and load-shedding behavior. If port 9184 is reachable from an untrusted network, an unauthenticated remote party can query this operational data directly. ### Attack Path 1. An operator follows the documented configuration and binds the metrics service to `0.0.0.0:9184`. 2. The operator opens TCP port 9184 as instructed. 3. An attacker scans the validator address and identifies the exposed Prometheus endpoint. 4. The attacker requests `http://validator-address:9184/metrics`. 5. The attacker collects consensus, synchronization, peer, queue, and workload telemetry. 6. The information is used to identify degraded periods, synchronization delays, or other favorable windows for targeted denial-of-service activity. ### Impact A ...[truncated 457 chars]
- Remediation
- ## Remediation Suggestions - Change the secure default to `127.0.0.1:9184` or a dedicated private monitoring interface. - Do not instruct operators to expose port 9184 to the public Internet. - Require host firewall or cloud security-group rules that allow only designated monitoring servers. - Use a VPN, private network, or mutually authenticated TLS proxy when metrics must cross network boundaries. - Place the endpoint behind an authenticated reverse proxy if remote access is required. - Document that the raw Prometheus endpoint provides no application-layer authentication. - Add deployment verification steps such as external port scanning and firewall-rule review.
