T09 · Insecure Skill Coding Practices
- Location
scripts/infer_v2_module/get_exec.py:26- Finding
Inference Exec API Discloses Cluster Authentication Tokens to Callers
- Content
View full analysis
Dict[str, Any]: """查询服务exec登录信息 - v2版本 调用此接口可获取在线服务容器的 exec 登录信息(如容器 ID、登录命令等), 用于调试或查看操作。调用者需具备足够权限,且目标容器必须处于运行状态。 参数: access: 认证信息 service_id: 服务ID,创建服务时返回,或通过"查询服务列表"接口获取 instance_group: 实例组名,创建服务时自动生成,或通过"查询服务实例组列表"接口获取 instance_name: 实例名,创建服务时填写,或通过"查询服务实例列表"接口获取 pod_name: Pod实例名,由K8S自动生成,或通过"查询服务pod列表"接口获取 返回: 包含exec登录信息的字典,包括: - endpoint: 资源池 api-server 地址 - pod_name: 待登录的容器名 - pod_status: Pod状态 - container_name: 待登录的容器名 - namespace: Pod所在的namespace - cluster_token: 集群所属租户token """ checks = [ (check_service_id(service_id), "service_id"), (check_instance_group(instance_group), "instance_group"), (check_instance_name(instance_name), "instance_name"), (check_pod_name(pod_name), "pod_name") ] for check, param in checks: if check: return format_api_result(False, error=f"{param}: {check}") print(f" 查询服务v2 exec登录信息: {service_id}") print(f" 实例组: {instance_group}, 实例名: {instance_name}, Pod: {pod_name}") query = { "instance_group": instance_group, "instance_name": instance_name, "pod_name": pod_name } if kwargs: query.update(kwargs) try: result = simple_api_call(access, 'GET', '/v2/{project_id}/services/{service_id}/exec', query=query, service_id=service_id) if not result: return format_api_result(False, error="API返回空结果") return format_api_result ...[truncated 2864 chars]- Remediation
View remediation
