T09 · Insecure Skill Coding Practices
- Location
SKILL.md:30- Finding
Long-Lived Application Credential Exposed in URL Query Parameters
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 30
Vulnerability Type: Credential exposure through URL query parameters
Risk Level: MediumVulnerable Code
markdown 2. **Data plane** (`https://cohesivity.ai/edge/*`): runtime calls to provisioned services from the tenant app. Auth: `?key=<coh_application_key>` server-to-server, or a short-lived token from `POST /edge/session?key=<coh_application_key>`.Technical Analysis
The Skill directs callers to place the long-lived
coh_application_keyin URL query parameters for both ordinary data-plane requests and requests that create short-lived sessions.Query parameters are routinely captured in reverse-proxy access logs, application server logs, observability platforms, debugging traces, error reports, network monitoring systems, and shell histories. Server-to-server use reduces browser-specific exposure but does not prevent infrastructure and telemetry systems from recording complete URLs.
This exposure is unnecessary because the credential can instead be supplied through an HTTP authorization header. The behavior therefore creates more secret exposure than is required for the declared data-plane functionality.
Attack Path
- The Agent reads
coh_application_keyfrom the project's.cohesivityfile. - It constructs a request such as
https://cohesivity.ai/edge/<service>?key=coh_app_.... - A reverse proxy, HTTP server, monitoring agent, debugging tool, or error-reporting platform records the complete URL.
- An attacker or unauthorized operator with access to that record extracts the application key.
- The attacker replays the key against enabled Cohesivity data-plane endpoints.
- The attacker retains access until the credential expires, is revoked, or is rotated.
Impact Assessment
A leaked application key may permit unauthorized invocation of the tenant's provisioned data-plane services. Depending on which services are enabled and their API authorization m ...[truncated 344 chars]
- The Agent reads
- Remediation
View remediation
Remediation Suggestions
-
Replace query-string authentication with an HTTP header, preferably:
http Authorization: Bearer <coh_application_key> -
Apply header-based authentication to both regular
/edge/*calls and the/edge/sessionendpoint. -
Prefer narrowly scoped, short-lived tokens for individual services and operations rather than exposing a tenant-wide application credential on every request.
-
Ensure reverse proxies, application servers, monitoring systems, and error-reporting services redact authorization data and URL query strings.
-
Document application-key revocation and rotation procedures, and provide a way to invalidate a suspected leaked key immediately.
-
Limit each application key to the minimum services and actions required by the deployed application.
-
During migration, reject credentials supplied through query parameters after a short deprecation period to prevent continued insecure usage.
-
