T09 · Insecure Skill Coding Practices
- Location
docker/entrypoint.sh:61- Finding
Externally Routed VSCode and VNC Services Disable Authentication
- Content
View full analysis
/dev/null 2>&1 & echo "[devbox] noVNC ready on port ${NOVNC_PORT}" fi if [ "${ENABLE_VSCODE:-false}" = "true" ]; then "${OPENVSCODE_SERVER_ROOT}/bin/openvscode-server" \ --host 0.0.0.0 \ --port "${VSCODE_PORT}" \ --without-connection-token \ --default-folder /workspace \ > /dev/null 2>&1 & echo "[devbox] VSCode ready on port ${VSCODE_PORT}" fi ``` The services are subsequently assigned externally reachable hostnames: ```bash cat > "${CF_CONFIG_DIR}/config.yml" << CFEOF ingress: - hostname: vscode-${DEVBOX_ID}.${DEVBOX_DOMAIN} service: http://localhost:${VSCODE_PORT} - hostname: novnc-${DEVBOX_ID}.${DEVBOX_DOMAIN} service: http://localhost:${NOVNC_PORT} ``` ### Technical Analysis OpenVSCode Server is launched with `--without-connection-token`, explicitly disabling its connection-token authentication. VNC is launched with `-nopw`, explicitly disabling password authentication. The initialization script then creates public Traefik or Cloudflare Tunnel routes for both services. No authentication middleware, identity-aware access policy, source-address restriction, or independently generated session secret is configured in the audited project. Sequential devbox identifiers also make hostnames such as `vscode-1.example.com` easier to predict. ### Attack Path 1. An attacker identifies the configured base domain through DNS, documentation, certificate transparency, or normal reconnaissa ...[truncated 905 chars]- Remediation
View remediation
