首页 网络安全 正文

PlaywrightCapture安全漏洞CVE-2026-63175

摘要

栋科技漏洞库关注到 PlaywrightCapture 类级可变状态共享漏洞,漏洞现在已经被追踪为CVE-2026-63175,漏洞CVSS 3.X评分为7.1。

PlaywrightCapture 是基于Playwright封装的Python网页采集库,用来替代老旧的Splash,专门一键抓取网页完整数据,开源BSD协议。

一、基本情况

PlaywrightCapture是开源Python库,底层完全封装Playwright,基于Playwright抓取并保存网页请求、Cookie、浏览器存储与截图数据。

PlaywrightCapture安全漏洞CVE-2026-63175

PlaywrightCapture 是面向爬虫、资产探测场景封装的Python专用工具包,实现了一站式采集网页全套数据,省去开发者大量重复编码。

栋科技漏洞库关注到 PlaywrightCapture 类级可变状态共享漏洞,漏洞现在已经被追踪为CVE-2026-63175,漏洞CVSS 3.X评分为7.1。

二、漏洞分析

CVE-2026-63175是 PlaywrightCapture 中的安全漏洞,其 Capture 类在受影响版本中,

将 HTTP 头、Cookie、浏览器存储、HTTP 凭据、代理、User-Agent、地理定位及已捕获请求等运行时状态以可变类属性形式存储,

导致同一 Python 进程内并发或先后创建多个 Capture 实例时彼此共享这些状态,

可能造成不同用户或任务间的认证信息、Cookie、凭据及请求数据泄露,或使一个任务以另一个任务的认证/代理上下文对外发出请求。

受影响版本中,playwrightcapture/capture.py 文件的 Capture 类在 __init__ 之外的类体内,

将 _requests、_headers、_cookies、_storage、_viewport、_user_agent、_http_credentials、_geolocation、_timezone_id、

_locale、_color_scheme、_java_script_enabled、_capture_timeout、_proxy 等捕获专用配置与运行时数据声明为可变类属性,

因此这些字典、列表或对象在 Capture 类所有实例之间共享;

任何一个实例调用 headers、cookies、storage、proxy 等 setter 写入或在捕获过程中累积 _requests 时,

都会覆盖其他实例对应的同一份类属性,进而引发跨任务的认证、凭据与请求数据污染。

修复版本中通过将上述 14 个捕获专用字段从类体移到 Capture.__init__ 方法体内改为 self.xxx 实例属性,

并增加注释明确指出这些变量必须作为实例变量不得作为类变量,同时简化 storage setter 的早退判断为单条 if 条件,

确保每个 Capture 实例在构造时获得独立的初始状态,运行期间对实例属性的修改不再影响其他实例,

跨任务的状态泄露路径被切断;修复包含在 v1.40.3 版本的提交 1e354b9d8566f49dbb331410be24c7c295645d43 中。

三、影响范围

PlaywrightCapture < 1.40.3

四、修复建议

PlaywrightCapture ≥ 1.40.3

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接