支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-22814 基础信息
漏洞信息
                                        # AdonisJS Lucid 内部ORM状态覆盖漏洞

## 概述
@adonisjs/lucid 是构建在 Knex 之上的 AdonisJS SQL ORM,存在批量赋值(Mass Assignment)漏洞,允许远程攻击者篡改 Lucid 模型的内部 ORM 状态。

## 影响版本
- @adonisjs/lucid <= 21.8.1  
- @adonisjs/lucid 22.x 预发布版本 < 22.0.0-next.6

## 细节
该漏洞存在于 Lucid 模型的数据赋值过程中,未正确过滤用户可控的输入字段。攻击者若能影响传入模型的数据,可利用此漏洞覆盖模型内部的 ORM 状态属性,从而操纵 ORM 的行为逻辑。

## 影响
- 可能导致业务逻辑绕过  
- 允许未经授权的数据库记录修改  
- 影响特定表或模型的数据完整性与安全性

## 修复版本
- @adonisjs/lucid >= 21.8.2  
- @adonisjs/lucid >= 22.0.0-next.6
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
Mass Assignment in AdonisJS Lucid Allows Overwriting Internal ORM State
来源:美国国家漏洞数据库 NVD
漏洞描述信息
@adonisjs/lucid is an SQL ORM for AdonisJS built on top of Knex. Prior to 21.8.2 and 22.0.0-next.6, there is a Mass Assignment vulnerability in AdonisJS Lucid which may allow a remote attacker who can influence data that is passed into Lucid model assignments to overwrite the internal ORM state. This may lead to logic bypasses and unauthorized record modification within a table or model. This affects @adonisjs/lucid through version 21.8.1 and 22.x pre-release versions prior to 22.0.0-next.6. This has been patched in @adonisjs/lucid versions 21.8.2 and 22.0.0-next.6.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
N/A
来源:美国国家漏洞数据库 NVD
漏洞标题
@adonisjs/lucid 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
@adonisjs/lucid是AdonisJS Framework开源的一个数据库对象关系映射库。 @adonisjs/lucid 21.8.2之前版本和22.0.0-next.6之前版本存在安全漏洞,该漏洞源于存在批量分配漏洞,可能导致逻辑绕过和未经授权的记录修改。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2026-22814 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-22814 的情报信息
  • 标题: Mass Assignment in AdonisJS Lucid Allows Overwriting Internal ORM State · Advisory · adonisjs/lucid · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ### 关键漏洞信息
    
    #### 漏洞概述
    - **漏洞类型**: Mass Assignment (CWE-915)
    - **风险等级**: 高 (8.2/10)
    - **CVE ID**: CVE-2026-22814
    
    #### 影响版本
    - **受影响版本**: 
      - <= 21.8.1
      - <= 22.0.0-next.5
    - **修复版本**: 
      - 21.8.2
      - 22.0.0-next.6
    
    #### 描述
    - **漏洞详情**: 
      - **受影响类**: `BaseModelImpl` 类中的`@adonisjs/lucid`
      - **问题**: 通过特定属性(如`$isPersisted`, `$attributes`, `$isDeleted`)的直接赋值,攻击者可以覆盖内部类属性,从而篡改内部ORM状态。
      - **原因**: 
        - ORM依赖于`this.hasOwnProperty(key)`来校验属性赋值。
        - 由于内部ORM属性作为实例属性被初始化,因此通过`hasOwnProperty`检查。
        - 这允许攻击者在使用`merge()`或`$consumeAdapterResult()`方法时传递特定键的载荷,从而劫持内部逻辑。
      - **暴露的内部属性**:
        - `$attributes`: 存储模型数据的原始容器。
        - `$isPersisted`: 控制 `save()` 执行是INSERT还是UPDATE操作。
        - `$original`: 存储记录的原始状态,用于计算更改。
        - `$isDeleted`: 防止对已删除模型的操作。
      - **影响范围**: 
        - `fill` 和`merge()`实例方法。
        - `create`, `createQuietly`, `firstOrNew`, `firstOrCreate`单条记录创建方法。
        - `updateOrCreate`条件更新。
        - `createMany`, `createManyQuietly`, `fetchOrNewUpMany`, `fetchOrCreateMany`, `updateOrCreateMany`批量操作。
    
    #### 影响
    - **风险**: 如果应用程序传递了未验证的数据,或保留了未知属性的已验证数据,容易受到攻击。
    - **原理**: 内部键作为实例属性存在,通过`hasOwnProperty`检查,绕过默认的未知属性拒绝机制。
    - **示例**: 
      - 开发者传递`request.all()`, `request.except()`或允许未知属性的模式给`Model.create()`
      - 攻击者可通过注入如`$isPersisted: true`或改变`$attributes`来控制数据的增删改查操作。
    
    #### 修复措施
    - **已修复版本**: 
      - `@adonisjs/lucid`版本 >= 21.8.2 或 >= 22.0.0-next.6
      - **建议**: 严格验证模型输入,如果可能,使用白名单策略移除未知键。
                                            
    Mass Assignment in AdonisJS Lucid Allows Overwriting Internal ORM State · Advisory · adonisjs/lucid · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-22814
四、漏洞 CVE-2026-22814 的评论

暂无评论


发表评论