当前使用版本(必填,否则不予处理)
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不就好了。这是谁提的,完全是恶搞