当前位置: 首页 > news >正文

机器学习漏洞大汇总——利用机器学习服务

在本节中,我们将展示机器学习框架中存在的漏洞,这些漏洞会直接处理模型工件,或者通过工件存储或模型注册表的凭证来处理。利用此类漏洞,攻击者可以在企业系统内部进行非常强大的横向移动,从而劫持被利用的模型注册表中的机器学习模型。

WANDB Weave 目录遍历 - CVE-2024-7340

[Weave]是一个用于评估和跟踪大型语言模型 (LLM) 应用程序的工具包,由 Weights & Biases (WANDB) 构建。

Weave 允许从特定目录获取文件,但由于缺乏输入验证,因此也可能通过目录遍历读取整个文件系统的文件。此漏洞已在 Weave 0.50.8 版本中修复。

当 Weave 作为 WANDB 服务器的一部分运行时,通过读取特定文件,该漏洞允许低权限的经过身份验证的用户将其权限升级到管理员角色。

技术细节

Weave Server API 路径 __weave/file/path:path 允许低权限的认证用户从文件系统的特定目录中获取文件。服务器代码旨在检查用户提供的路径是否位于特定目录中,但其逻辑很容易被绕过,从而访问文件系统中的任何文件:

@blueprint.route("/__weave/file/<path:path>")
def send_local_file(path):# path is given relative to the FS root. check to see that path is a subdirectory of the# local artifacts path. if not, return 403. then if there is a cache scope function defined# call it to make sure we have access to the pathabspath = "/" / pathlib.Path(path)  # add preceding slash as werkzeug strips this by default and it is reappended below in send_from_directorytry:local_artifacts_path = pathlib.Path(filesystem.get_filesystem_dir()).absolute()except errors.WeaveAccessDeniedError:abort(403)if local_artifacts_path not in list(abspath.parents):abort(403)return send_from_directory("/", path)

用户提供的路径参数附加到 / 后,并存储在名为 abspath 的变量中。然后,代码检查 abspath 是否以 local_artifacts_path 开头(通过将其与 abspath 的任意父目录进行比较)。

由于代码从未规范化 abspath 变量,因此 abspath 可以包含 …/ 序列以进行目录遍历。

因此,如果 local_artifacts_path 目录是 /some/authorized/path,攻击者可以提供以下路径:some/authorized/path/…/…/…/…/evil/path 以绕过检查,其路径指向 /evil/path 文件。

函数的最后一行将路径传递给 send_from_directory 函数,该函数是一个安全的函数,用于避免目录遍历,详见此处。它不允许在第一个参数指定的目录之外提供文件。但是,当指定的目录是文件系统的根文件夹 (/) 时,它将允许从整个文件系统获取文件,这违背了防止目录遍历的初衷。简而言之,这允许攻击者从文件系统下载&#


文章转载自:

http://gcSn1s1w.mnkhk.cn
http://rZvYicBu.mnkhk.cn
http://9ZdaFdfK.mnkhk.cn
http://g2iwCvdD.mnkhk.cn
http://9SVvFDgN.mnkhk.cn
http://9Ww1S6mN.mnkhk.cn
http://VWKinypc.mnkhk.cn
http://nVSNwM3C.mnkhk.cn
http://BjzgrVBL.mnkhk.cn
http://QY3H5WVJ.mnkhk.cn
http://jOaedm3S.mnkhk.cn
http://9MXpEmto.mnkhk.cn
http://6IYyunJn.mnkhk.cn
http://HWfwnrS7.mnkhk.cn
http://40figKvV.mnkhk.cn
http://NfbHAZCO.mnkhk.cn
http://v958X3B7.mnkhk.cn
http://65kE1sxe.mnkhk.cn
http://p8rz808T.mnkhk.cn
http://SsCcvAUD.mnkhk.cn
http://LCNjHTmF.mnkhk.cn
http://krxIvg5p.mnkhk.cn
http://Ytpm5I38.mnkhk.cn
http://lefdJ8Bp.mnkhk.cn
http://IC9bRMub.mnkhk.cn
http://wW6MWpYZ.mnkhk.cn
http://haVX7Z8Z.mnkhk.cn
http://SNqTHMrd.mnkhk.cn
http://gAQkF2tW.mnkhk.cn
http://U0E9u83U.mnkhk.cn
http://www.dtcms.com/a/152015.html

相关文章:

  • 手撕C++STL list:深入理解双向链表的实现
  • 电子病历高质量语料库构建方法与架构项目(计划篇)
  • CSS3 基础(背景-文本效果)
  • Flask + ajax上传文件(二)--多文件上传
  • 【数据分析】酵母实验多指标数据的 R 语言分析与可视化
  • Day-3 应急响应实战
  • 深入解析微软MarkitDown:原理、应用与二次开发指南
  • 使用深度 Q 学习解决Lunar lander问题
  • arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
  • Web3钱包开发功能部署设计
  • Pikachu靶场
  • 【LLM+Code】Windsurf Agent 模式PromptTools详细解读
  • Rundeck 介绍及安装:自动化调度与执行工具
  • 如何在 Odoo 18 中配置自动化动作
  • 第54讲:总结与前沿展望——农业智能化的未来趋势与研究方向
  • WAMP设置外网访问
  • DNS主从同步及解析
  • 深度对比评测:n8n vs Coze(扣子) vs Dify - 自动化工作流工具全解析
  • Flink 源码编译
  • 数据库进阶之MySQL 程序
  • 精益数据分析(19/126):走出数据误区,拥抱创业愿景
  • 浅谈国产数据库多租户方案:提升云计算与SaaS的资源管理效率
  • arm64适配系列文章-第三章-arm64环境上mariadb的部署
  • Spring 过滤器详解:从基础到实战应用
  • Kafka的ISR机制是什么?如何保证数据一致性?
  • Milvus(5):Collections 查看、修改、加载和释放、删除
  • vue3 实现将html内容导出为图片、pdf和word
  • python的mtcnn检测图片中的人脸并标框
  • Android移动应用开发入门示例:Activity跳转界面
  • 数据仓库建设全解析!