T09 · Insecure Skill Coding Practices
Warning
- Location
- pipeline-mcp.yaml:5
- Finding
- Unauthenticated HTTP Service Exposed on All Network Interfaces<![CDATA[ ## Vulnerability Details **File Location**: `pipeline-mcp.yaml:5-12` **Vulnerability Type**: Unauthenticated network exposure and insufficient resource controls **Risk Level**: Medium ### Vulnerable Code ```yaml http: enabled: true address: "0.0.0.0:${PORT:-8080}" input: http_server: path: /convert allowed_verbs: [POST] timeout: 30s ``` ### Technical Analysis The MCP pipeline binds its HTTP listener to `0.0.0.0`, making the service available through every network interface permitted by the host firewall or container networking configuration. No authentication, authorization, or source-address restriction is declared. The endpoint accepts POST requests and parses supplied JSON before formatting it as YAML. Unlike the CLI pipeline, which explicitly sets `max_buffer: 1048576`, the MCP configuration does not declare a request-body limit. Runtime defaults may provide an implicit limit, but no protection is established by the reviewed configuration. This design unnecessarily broadens the attack surface of a conversion utility. Network exposure should be explicitly enabled by an operator rather than being the default behavior. ### Attack Path 1. An operator starts the MCP pipeline using the documented command. 2. The service listens on every available interface on the configured port, defaulting to port 8080. 3. An attacker with network access locates the exposed service. 4. The attacker repeatedly submits POST requests to `/convert`, potentially using large or computationally expensive JSON documents. 5. The service repeatedly parses and formats the input, consuming application memory and CPU until requests are rejected, time out, or service availability degrades. ### Impact Assessment An attacker can invoke the conversion endpoint without credentials and consume the resources allocated to the pipeline. The demonstrated impact is limited to unauthorized use of this application endpoint and potential denial of se ...[truncated 159 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Bind the listener to `127.0.0.1` by default. - Require an explicit configuration change before exposing the service to external networks. - Add authentication and authorization when remote access is necessary. - Configure a strict request-body size limit comparable to the CLI pipeline's one-megabyte limit. - Apply rate limiting, concurrency limits, and bounded processing time. - Restrict ingress using host firewall, container networking, or reverse-proxy access-control rules. - Return a suitable HTTP error before parsing requests that exceed the permitted size. - Add tests verifying that unauthenticated external requests are rejected in remotely accessible deployments. ]]>
