漏洞概述 漏洞名称: Cross-Organization IDOR: Multiple tRPC endpoints missing activeOrganizationId validation 描述: 在Dokploy中,多个tRPC端点接受资源ID,但未验证该资源是否属于调用者的活动组织。虽然同一路由器中的相邻端点正确检查了 ,但这些端点完全跳过了检查,允许任何经过身份验证的用户访问、修改或删除属于其他组织的资源。 根因: 中间件仅验证用户是否已认证,并未强制执行组织范围。每个端点必须单独验证资源的组织是否与会话的 匹配。许多端点不一致地跳过了此检查。 影响范围 受影响端点: deployment.ts (3 vulnerable / 3 correctly secured) - (line 72): 查询部署按类型ID,无组织检查 - (line 86): 终止部署进程,无组织检查 - (line 112): 删除部署,无组织检查 rollbacks.ts (1 vulnerable / 1 correctly secured) - (line 11): 删除回滚,无组织检查(而line 27正确检查组织) backup.ts (11+ vulnerable) - : 所有缺乏组织检查 - : 所有缺乏组织检查 - : 按destinationId列出,无组织检查 volume-backups.ts (6 vulnerable) - : 所有缺乏组织检查 cluster.ts (4+ vulnerable) - : 使用serverId,无组织验证 mount.ts (1 vulnerable / 3 correctly secured) - (line 21): 无组织检查(而remove_one_update_all正确检查组织) 影响: 机密性: 跨组织部署信息、备份配置、服务器详情、Swarm加入令牌 完整性: 跨组织部署/备份/回滚删除和修改 可用性: 跨组织部署终止、备份计划操纵 修复方案 推荐修复: 在每个 调用后添加 验证,遵循正确安全端点的现有模式。 示例代码: