T09 · Insecure Skill Coding Practices
- Location
SKILL.md:576- Finding
Bearer Token and Dataset Data May Be Transmitted Over Plaintext HTTP
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:485-501,SKILL.md:576-591
Vulnerability Type: Insecure transport of credentials and sensitive data
Risk Level: MediumRelevant code snippets:
python # Python — create workspace via API import requests resp = requests.post( f"{api_url}/workspaces", headers={"Authorization": f"Bearer {token}"}, json={"id": "my-workspace", "name": "My Workspace"}, ) resp.raise_for_status()text |-- Need custom API URL? | `-- client = Client(api_url="http://custom:8080") | `-- Node.js? `-- import { ManagedClient, initializeWasm } from 'deeplake'; await initializeWasm(); const client = new ManagedClient({ token: process.env.DEEPLAKE_API_KEY!, workspaceId: "my-ws", apiUrl: "http://custom:8080", });Technical Analysis
The Skill permits a custom API endpoint using plaintext HTTP while documenting authenticated requests that place the Deeplake API token in an
Authorization: Bearerheader. Managed ingestion operations also send user-selected files, structured records, embeddings, images, videos, and other dataset content to the configured endpoint.HTTP provides no transport confidentiality or server authentication. If the documented custom endpoint pattern is used outside a securely isolated localhost development environment, an attacker able to observe or modify the network path can capture the bearer token and dataset content. A man-in-the-middle attacker could also alter API responses or redirect subsequent workflow decisions.
The documentation does not warn users about this exposure, restrict plaintext HTTP to loopback addresses, or describe certificate validation and trusted endpoint requirements. Network access is necessary for managed Deeplake functionality, but transmitting production credentials over plaintext transport exceeds safe minimum requirem ...[truncated 1325 chars]
- Remediation
View remediation
Remediation Suggestions
- Require HTTPS for all non-loopback API endpoints.
- Reject
http://URLs by default, allowing them only through an explicit development-only option. - If plaintext development endpoints must be supported, restrict them to loopback hosts such as
127.0.0.1,::1, orlocalhost. - Replace the examples with
https://custom.exampleand add a prominent warning against transmitting production tokens over HTTP. - Preserve standard TLS certificate and hostname verification; do not recommend disabling verification.
- Require explicit user approval before sending sensitive local files to a custom or non-Deeplake endpoint.
- Encourage narrowly scoped, short-lived tokens and document immediate revocation procedures for suspected exposure.
- Consider endpoint allowlisting or clear origin confirmation before sending credentials and dataset content.
