## 权限/鉴权绕过（Critical）

### 触发信号

在以下代码特征出现时启动此检测：
- 路由 handler 中的写操作（POST/PUT/DELETE）
- 操作参数中包含用户可控的资源 ID（`userId`、`orderId`、`id` 来自路径/查询参数）
- 包含删除、转账、审批、导出等敏感操作关键词的函数

### 判定流程

1. **定位敏感操作入口**：`Read` 识别变更代码中的路由定义（`router.post/put/delete`、`@PostMapping` 等），标记其中的写操作 handler
2. **检查鉴权链**：`Read` 从路由定义向上追溯中间件链，确认是否包含鉴权中间件（`requireAuth`、`checkPermission`、`@RequireRole`）
3. **检查内部函数隔离性**：对鉴权保护的函数，`find_references` 追踪所有调用者：
   - 是否存在绕过路由中间件直接调用的路径（如内部 service 方法被其他入口直接调用）
   - 被绕过的路径是否缺少独立的鉴权检查
4. **检查资源归属验证**：对操作参数中包含资源 ID 的接口，`Read` 确认是否验证了当前用户对该资源的所有权（而非仅验证资源存在性）

### 证据构造

确认缺陷后，输出需包含：
- 敏感操作入口（路由定义，含文件:行号）
- 鉴权链路分析（中间件链是否覆盖，何处断裂）
- 绕过路径（如存在，列出绕过鉴权的调用路径）
- 业务影响（越权操作可导致的后果：数据泄露、恶意修改、权限提升）

### 排除

- 内部服务间调用（已有服务间鉴权机制如 mTLS、JWT）
- 管理员专用接口（已有 admin middleware 保护）
- 公开只读数据接口
