T09 · Insecure Skill Coding Practices
- Location
pipeline-mcp.yaml:5- Finding
Unauthenticated HTTP Service Exposed on All Network Interfaces
- Content
View full analysis
Vulnerability Details
File Location:
pipeline-mcp.yaml:5-13
Vulnerability Type: Unauthenticated network exposure and missing request-size controls
Risk Level: Mediumyaml http: enabled: true address: "0.0.0.0:${PORT:-8080}" input: http_server: path: /flatten allowed_verbs: [POST] timeout: 30sTechnical Analysis
The MCP pipeline binds its HTTP listener to
0.0.0.0, making the service available through every network interface permitted by the deployment environment. No authentication, authorization, or network access restriction is configured for the/flattenendpoint.The HTTP input also lacks an explicit request-body size limit. The CLI pipeline defines a one-megabyte buffer limit, but no equivalent control is present here. An unauthenticated, network-reachable client can therefore submit requests for JSON parsing and response generation. The pipeline includes the parsed input in
root.original, so attacker-supplied content is reflected in the synchronous response.Attack Path
- An operator starts
pipeline-mcp.yamlon a host or container whose configured port is reachable by an untrusted party. - The service listens on every interface at
${PORT:-8080}. - The attacker sends unauthenticated
POSTrequests to/flatten. - The pipeline parses the supplied JSON, computes its keys, and returns the supplied object in the response.
- The attacker repeats requests or supplies resource-intensive payloads to consume parsing, memory, connection, and response-bandwidth capacity.
This path depends on the deployment port being exposed to the attacker; the configuration alone does not prove public Internet reachability.
Impact Assessment
An attacker can invoke the pipeline without credentials and process arbitrary submitted JSON within the service's runtime privileges. The finding does not provide operating-system command execution or privilege escala ...[truncated 324 chars]
- An operator starts
- Remediation
View remediation
Remediation Suggestions
- Bind to
127.0.0.1by default when remote access is not explicitly required. - Require authenticated requests and enforce authorization appropriate to the deployment.
- Place remotely accessible deployments behind a reverse proxy or gateway that provides TLS, authentication, request-body limits, rate limiting, and connection limits.
- Configure an explicit, conservative maximum HTTP request-body size comparable to the CLI pipeline's one-megabyte limit.
- Add concurrency limits, request-rate limits, and bounded parsing time and memory.
- Restrict network ingress through firewall rules, security groups, or container network policies.
- Avoid returning
root.originalunless reflecting the complete submitted object is required. - Document that direct public exposure of the listener is unsafe without compensating access controls.
- Add tests confirming rejection of unauthenticated, oversized, and excessive requests.
- Bind to
