阻止主机导航门只适用于代理主动启动的路由;页面主动启动导航、历史记录回退和窗口打开标签的操作将会跳过此功能。
被屏蔽- 主机导航门只覆盖代理启动的路径; 页面启动的导航, 历史回溯, 和窗口。 打开标签的领养跳过它
** 严重性:** (浏览器-平面 SSRF 边界绕行;内部响应内容到达 LLM 即时,取出输出,并截取文物)
** 受影响的:** skyvern-ai/skyvern at content `73fecfa5e79f05aa843cf060db9d8e94f18ac1f4' (OSS自备部署,在后端发射浏览器时可直接接触网络;云在运行代理后运行已经拒绝代理内主机).
□ 总结
验证-导航-目的地 ' (skyvern/webeye/navigation.py:43') 导航失效,除非目标为公众http(s)目的地,而且在每个代理启动的路线上执行:navigate-with retry' (Navigation.py:258)的发送前检查,hop-hop-hop reference revalation (Navigation.py:81),GOTO URL和New TAB行动处理器(skyvern/webey/actions/handler:10692',:10802'),LLM-iss-issued GOTO URL/NEW TAB(skyverrn/webey/actions/actions/parse-actions.py:::328'),以及流式CDP输入道(skyverrn/fordk/routs/cleting-cinp:349 '),p.p.p
门从不见的路线:
- 网页启动主框架导航。 在行动批次之后,下一步会刮去页面移动到的任何文件(JS `location.href'、元更新、表格提交)。 树上唯一的"帧导航"收听器是"Egress monitor"("skyvern/forge/sdk/browser network egress monitor.py:385");"Install ()"没有生产呼叫器,而"BrowserNetworkEgressMontitor.unenrolled ()"在"skyvern/webey/browser factory.py:1378",它没有安装任何路线.
- 历史导航。
andle go back action'和andle go forward-action' callpage.go back()'/page.go forward()',没有目的地验证(handler.py:10707,10723)。 - " 窗口.打开 " 弹出。 它们被 " list valid pages " ( " sskyvern/webeye/real browser state.py:519 " )作为分页使用,它们的URL和标题被制成提示,没有主机过滤器( " Building open tabs context " , " sskyvern/webey/utils/py:256 " ),它们被 " capture open tab screshots " (page.py:285)和SWITCH TAB切换到任何没有URL检查的分页(andler.py:10826)。
顺序:代理访问的一页可以将浏览器引导到仅通过这些路线的内部目标(loopback服务,RFC1918面板,云元数据)上. 反应机构然后流入即时输入的元素树(skyvern/forge/agent.py:6920'),进入提取出 信息'和通过API和webhooks返回的行动推理,并进入截图文物。 这是已在问题6537、6915和7132中跟踪到的工作流程-SSRF的浏览器-平面对应器。
□再现.
下面的差分运行了 Skyvern 自己的验证器对内目标, 然后通过同一剧作家 API 驱动一个真正的铬 . . . . . . .
内容来源: Skyvern-AI/skyvern