当前使用版本(必填,否则不予处理)

3.5.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

安全漏洞扫描 CNNVD-202203-1999 CVE-2022-25517

重现步骤(如果有就写完整)

报错信息

MyBatis是美国阿帕奇(Apache)基金会的一款优秀的持久层框架。支持自定义 SQL、存储过程以及高级映射,免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作, 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 MyBatis plus 3.4.3 版本存在SQL注入漏洞,该漏洞源于/core/conditions/AbstractWrapper.java 中的 Column 参数包含SQL注入漏洞。

目前安全漏洞扫描网站CNNVD上仍未公布该漏洞修复补丁版本。

Comment From: timnick-snow

不要将不受信任的值(比如前端传递的值)传入到column参数中。

Comment From: laoLiangLoveProgram

使用 LambdaUpdateWrapper 和 LambdaQueryWrapper 可以避免被SQL注入

Comment From: qmdx

任何 ORM 框架人为的传入运行字符串输入,都是存在 SQL 注入的可能。这个 CVE 完全是恶意的,开发的过程开发者自行检查拼接 SQL 的逻辑,比如 mybatis xml $ 占位符 使用的时候肯定是不允许前端出入 任意字符串的。

Comment From: gzkno1

这是在搞笑么。cloumn字段向来是由后端控制,查询的字段从来不是前端传入,要是后端会允许传coulmn进来,何必这么麻烦,我直接传sql不就好了。这是谁提的,完全是恶搞