T05 · Unauthorized Access and Privilege Escalation
- Location
assets/docker-compose.yml:26- Finding
Unauthenticated observability services are exposed on all host interfaces
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a coherent local observability setup, but it exposes no-login monitoring services more broadly than its local-only description suggests.
Install only on a trusted machine and network. Before running it, bind exposed Docker ports to 127.0.0.1, disable anonymous Grafana Admin access or add authentication, validate service names passed to helper scripts, and consider using pinned dependencies or a reviewed lockfile.
assets/docker-compose.yml:26Unauthenticated observability services are exposed on all host interfaces
assets/scripts/register_app.sh:13Target registration permits path traversal and JSON injection
assets/lib/observability.py:56Unvalidated service name permits log-path traversal
assets/requirements.txt:4Dependencies are unbounded and are not integrity-pinned
The skill includes shell commands, file copying, chmod, Docker orchestration, pip installs, and local HTTP requests, but it does not declare an explicit tool scope such as permissions or allowed-tools. This creates a governance gap: an agent may execute impactful local actions without a machine-readable restriction boundary, increasing the chance of unintended command execution or over-broad tool use.
The helper automatically enables OTLP trace export and FastAPI request instrumentation by default, which can transmit request metadata to a network endpoint without any explicit consent or warning at the call site. In an observability utility, this is likely intended for convenience rather than abuse, but it still creates a privacy and data-governance risk because developers may unknowingly emit telemetry containing sensitive route, header, or application context data.
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
Wait ~15 seconds for all services to start, then verify:
curl -s -o /dev/null -w "Grafana: %{http_code}\n" http://localhost:3000/api/health
curl -s -o /dev/null -w "Prometheus: %{http_code}\n" http://localhost:9091/-/healthy
curl -s -o /dev/null -w "Loki: %{http_code}\n" http://localhost:3300/ready
curl -s -o /dev/null -w "Tempo: %{http_code}\n" http://localhost:4318/ready
The dependency is specified with a lower-bound only (>=7.0.0), which permits installation of any newer release, including unreviewed major versions with breaking changes or newly introduced malicious/supply-chain issues. In a reusable skill, this increases build non-determinism and can cause consumers to pull different packages over time than the author tested.
# Install: pip install -r requirements.txt
# Metrics
prometheus-fastapi-instrumentator>=7.0.0
# Traces (OpenTelemetry)
opentelemetry-sdk>=1.25.0
Using opentelemetry-sdk>=1.25.0 allows future versions to be installed automatically, making deployments non-reproducible and exposing users to potential supply-chain risk if a later release is compromised or introduces insecure defaults. Observability libraries are often deeply integrated into request handling, so unexpected version drift can affect broad application behavior.
prometheus-fastapi-instrumentator>=7.0.0
# Traces (OpenTelemetry)
opentelemetry-sdk>=1.25.0
opentelemetry-exporter-otlp-proto-grpc>=1.25.0
opentelemetry-instrumentation-fastapi>=0.46b0
The exporter dependency is unpinned and may resolve to any later version, creating non-deterministic builds and increasing the chance of pulling a vulnerable or malicious upstream release. Because exporters handle telemetry egress, version changes can affect data transmission, reliability, and security-sensitive configuration behavior.
# Traces (OpenTelemetry)
opentelemetry-sdk>=1.25.0
opentelemetry-exporter-otlp-proto-grpc>=1.25.0
opentelemetry-instrumentation-fastapi>=0.46b0
# Structured JSON logging (Loki-compatible)
python-json-logger>=2.0.7 allows installation of arbitrary later versions, which weakens reproducibility and increases software supply-chain exposure. Logging libraries can influence how application data is serialized and emitted, so unexpected changes may create operational or security issues if a future release is problematic.
opentelemetry-instrumentation-fastapi>=0.46b0
# Structured JSON logging (Loki-compatible)
python-json-logger>=2.0.7
No suspicious patterns detected.