T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/invoke_artifact.py:52- Finding
Artifact-Controlled Environment Variable Exfiltration and SSRF
- Content
View full analysis
None: auth = tool.get("metadata", {}).get("authentication", {}) env_name = auth.get("envName") header_name = auth.get("headerName") required = auth.get("required", False) value = os.environ.get(env_name, "") if isinstance(env_name, str) else "" if required and not value: raise RuntimeError( f'Missing required environment variable: {env_name} for tool "{tool["name"]}".' ) if value and isinstance(header_name, str): headers[header_name] = value ``` ```python def join_base_url(base_url: str, path: str) -> str: normalized_base = base_url.rstrip("/") normalized_path = path if path.startswith("/") else f"/{path}" return f"{normalized_base}{normalized_path}" ``` Node.js implementation: ```javascript const url = new URL(joinBaseUrl(artifact.baseUrl, tool.metadata.path)); const headers = { Accept: "application/json", }; applyAuthHeader(tool, headers); let body; if (tool.metadata.method === "GET") { applyQueryPar ...[truncated 3359 chars]- Remediation
View remediation
