# jwt-go 在解析头部时允许过度的内存分配
## 漏洞描述
### 概述
golang-jwt是一个用Go语言实现的JSON Web Tokens库。在版本3.2.0到5.2.1以及4.5.1之前的版本中,`parse.ParseUnverified`函数对未验证的数据(Authorization header中的Bearer token)进行拆分时会导致大量内存分配。
### 影响版本
- 3.2.0 - 5.2.1
- 4.5.1及之前版本
### 细节
`parse.ParseUnverified`函数通过调用`strings.Split`方法对传入的参数进行拆分。由于输入数据是未验证的数据,攻击者可以通过在Authorization header中使用很多`.`字符构造恶意请求,导致该函数执行时产生大量的内存分配(O(n)字节)。
### 影响
当攻击者发送一个包含大量`.`字符的恶意请求时,会导致高内存消耗,可能引发DoS(拒绝服务)攻击。这个问题已经在5.2.2和4.5.2版本中修复。
# | POC 描述 | 源链接 | 神龙链接 |
---|
标题: Excessive memory allocation during header parsing · Advisory · golang-jwt/jwt · GitHub -- 🔗来源链接
标签: x_refsource_CONFIRM
标题: Merge commit from fork · golang-jwt/jwt@0951d18 · GitHub -- 🔗来源链接
标签: x_refsource_MISC
标题: Introduce (*Parser).ParseUnverified · golang-jwt/jwt@bf316c4 · GitHub -- 🔗来源链接
标签: x_refsource_MISC
神龙速读暂无评论