🤖 AI Full Scan Report
| Severity |
Count |
| 🔴 Error |
9 |
| 🟡 Warning |
3 |
| 🔵 Info |
0 |
🔴 Errors
src/assistant/sessionHistory.ts:29 — URL 路径注入风险:sessionId 直接拼接到 URL 路径中(${sessionId}),未进行校验或转义。如果 sessionId 包含特殊字符(如 ../),可能导致路径遍历或访问非预期资源。
src/bridge/bridgeStatusUtil.ts:54 — 构造 URL 时直接将 environmentId 拼接到字符串中,未调用 validateBridgeId 进行校验,存在 URL 注入风险。
src/bridge/bridgeStatusUtil.ts:64 — 构造 Session URL 时直接将 sessionId 和 environmentId 拼接到 URL 中,未调用 validateBridgeId 进行校验,存在 URL 注入风险。
src/bridge/codeSessionApi.ts:39 — URL 构造未校验:变量 baseUrl 直接拼接到 URL 中,未进行任何校验或转义。攻击者可利用此构造恶意 URL(如 SSRF 攻击),存在严重的 URL 注入风险。
src/bridge/codeSessionApi.ts:73 — URL 构造未校验:变量 baseUrl 和 sessionId 直接拼接到 URL 中。sessionId 作为用户输入参数,未进行格式校验(如正则检查)或清理,可能导致路径遍历或注入风险。
src/bridge/createSession.ts:115 — URL/路径注入风险:使用未校验的变量 baseUrlOverride 构造 URL。未调用任何 URL 校验函数,攻击者可能通过控制该参数进行 SSRF 攻击或路径遍历。
src/bridge/createSession.ts:127 — URL/路径注入风险:使用未校验的变量 opts?.baseUrl 和 sessionId 构造 URL。未进行任何校验,存在路径遍历或 SSRF 风险。
src/bridge/createSession.ts:145 — URL/路径注入风险:使用未校验的变量 opts?.baseUrl 和 sessionId 构造 URL。未进行任何校验,存在路径遍历或 SSRF 风险。
src/bridge/createSession.ts:162 — URL/路径注入风险:使用未校验的变量 opts?.baseUrl 和 compatId 构造 URL。未进行任何校验,存在路径遍历或 SSRF 风险。
🟡 Warnings
src/assistant/sessionHistory.ts:37 — 异步错误丢失:axios 请求的错误被 .catch(() => null) 捕获并静默吞掉。虽然函数返回 null,但网络错误或 HTTP 错误状态被丢弃,导致调用方无法感知真实的失败原因,不利于调试和错误处理。
src/bridge/bridgeMessaging.ts:145 — onInboundMessage 回调被调用时使用了 void 前缀(fire-and-forget)。如果该回调函数是异步的且抛出异常(例如附件解析失败),错误将被静默吞掉,无法被外层 try-catch 捕获。
src/bridge/bridgeMessaging.ts:233 — transport.write(event) 被调用时使用了 void 前缀。如果传输层写入失败(例如网络错误或序列化错误),错误将被静默吞掉,无法被外层 try-catch 捕获。
Generated by Newma Review
🤖 AI Full Scan Report
🔴 Errors
src/assistant/sessionHistory.ts:29— URL 路径注入风险:sessionId 直接拼接到 URL 路径中(${sessionId}),未进行校验或转义。如果 sessionId 包含特殊字符(如../),可能导致路径遍历或访问非预期资源。src/bridge/bridgeStatusUtil.ts:54— 构造 URL 时直接将environmentId拼接到字符串中,未调用validateBridgeId进行校验,存在 URL 注入风险。src/bridge/bridgeStatusUtil.ts:64— 构造 Session URL 时直接将sessionId和environmentId拼接到 URL 中,未调用validateBridgeId进行校验,存在 URL 注入风险。src/bridge/codeSessionApi.ts:39— URL 构造未校验:变量 baseUrl 直接拼接到 URL 中,未进行任何校验或转义。攻击者可利用此构造恶意 URL(如 SSRF 攻击),存在严重的 URL 注入风险。src/bridge/codeSessionApi.ts:73— URL 构造未校验:变量 baseUrl 和 sessionId 直接拼接到 URL 中。sessionId 作为用户输入参数,未进行格式校验(如正则检查)或清理,可能导致路径遍历或注入风险。src/bridge/createSession.ts:115— URL/路径注入风险:使用未校验的变量baseUrlOverride构造 URL。未调用任何 URL 校验函数,攻击者可能通过控制该参数进行 SSRF 攻击或路径遍历。src/bridge/createSession.ts:127— URL/路径注入风险:使用未校验的变量opts?.baseUrl和sessionId构造 URL。未进行任何校验,存在路径遍历或 SSRF 风险。src/bridge/createSession.ts:145— URL/路径注入风险:使用未校验的变量opts?.baseUrl和sessionId构造 URL。未进行任何校验,存在路径遍历或 SSRF 风险。src/bridge/createSession.ts:162— URL/路径注入风险:使用未校验的变量opts?.baseUrl和compatId构造 URL。未进行任何校验,存在路径遍历或 SSRF 风险。🟡 Warnings
src/assistant/sessionHistory.ts:37— 异步错误丢失:axios 请求的错误被.catch(() => null)捕获并静默吞掉。虽然函数返回 null,但网络错误或 HTTP 错误状态被丢弃,导致调用方无法感知真实的失败原因,不利于调试和错误处理。src/bridge/bridgeMessaging.ts:145— onInboundMessage 回调被调用时使用了 void 前缀(fire-and-forget)。如果该回调函数是异步的且抛出异常(例如附件解析失败),错误将被静默吞掉,无法被外层 try-catch 捕获。src/bridge/bridgeMessaging.ts:233— transport.write(event) 被调用时使用了 void 前缀。如果传输层写入失败(例如网络错误或序列化错误),错误将被静默吞掉,无法被外层 try-catch 捕获。Generated by Newma Review