Mybatis-PageHelper icon indicating copy to clipboard operation
Mybatis-PageHelper copied to clipboard

关于 CVE-2022-28111漏洞!!!

Open abel533 opened this issue 3 years ago • 13 comments

这种漏洞应该在调用方通过正则或者白名单处理,有些人的需求会用到函数等各种复杂排序,因此分页插件不做校验。

如果你从前端传递一个 SQL 用 JDBC 原生方式执行,你是不是发现了一个天大的漏洞?

如果JDBC不做处理,是不是就不用 JDBC 了?

如果这个漏洞会影响你们项目选择分页插件,可以在当前 issues 留言,如果留言人数很多,下个版本可以把 order by 功能去掉。

影响所有版本?瞎写!!!

下面是和排序有关的更新日志。

3.6.0 - 2015-02-03

  • PageHelper增加了startPage(int pageNum, int pageSize,String orderBy)方法(3.7.0版本以后,移除了该方法),针对sqlserver

3.7.0 - 2015-04-21

  • 由于orderby参数经常被错误认为的使用,因此该版本全面移除了orderby
  • Page<E>移除orderby属性
  • PageHelper的startPage方法中,移除包含orderby参数的方法,sqlserver相关包含该参数的全部移除

4.0.0 - 2015-07-13

  • 可以单独使用PageHelper.orderBy(String orderBy)对查询语句增加排序,也可以配合startPage的其他方法使用
  • 可以使用PageHelper.startPage(int start,int size,String orderBy)对分页查询进行排序

5.0.0 - 2017-01-02

  • 去掉了不适合出现在分页插件中的 orderby 功能,以后会提供单独的排序插件

5.1.0 - 2017-08-28

  • 增加 4.x 以前版本包含的排序功能,用法一致(PageHelper增加了几个排序相关的方法)

现在有人乱用还提交漏洞,近期会简单处理 order by

abel533 avatar Jun 02 '22 07:06 abel533

并不觉得是分页插件的问题,如果需要前端传递SQL 应该由开发者自己校验

komorebi64 avatar Jun 06 '22 09:06 komorebi64

代码层面上没有问题,主要是CVE不过,项目没办法投产

Lee0609x avatar Jun 07 '22 02:06 Lee0609x

@Lee0609x 你们通过什么软件检测的漏洞?我用工具检测是正常的。

提交漏洞的人的示例中,是业务层的漏洞,不是分页插件的,应该只有它的写法才有漏洞,和插件无关。

abel533 avatar Jun 07 '22 14:06 abel533

dependency check 会显示这个CVE,影响发布

WingsOfPiano avatar Jun 08 '22 02:06 WingsOfPiano

同样CVE不过,无法发布

xjjaid13 avatar Jun 08 '22 03:06 xjjaid13

https://www.cnblogs.com/secload/articles/16061420.html

mustblade avatar Jun 09 '22 07:06 mustblade

同样CVE不过,无法发布

无解了

zhengfengshaw avatar Jun 12 '22 05:06 zhengfengshaw

Order By 字符串拼接SQL的功能还是去掉吧,要排序手写SQL拉倒 https://www.cnblogs.com/secload/articles/16061420.html

xzing avatar Jun 29 '22 09:06 xzing

新版本限制了order by,但是目前检测新版本仍然会提示该漏洞。

@Lee0609x @WingsOfPiano @xjjaid13 你们使用新版本有问题吗?

abel533 avatar Jun 30 '22 07:06 abel533

这个根本不是PageHelper的问题。 是一部分人写代码的时候不遵守安全规则罢了。打个不恰当的比方:傻子乱用菜刀会伤到他自己,所以菜刀就有漏洞么?

yindz avatar Jul 18 '22 03:07 yindz

https://www.cnblogs.com/secload/articles/16061420.html

插件做校验也不算多此一举,不去掉的话,修下漏洞就好了啊。

这么看的话,插件里就是有这个漏洞。即使业务代码不使用,依赖pageHelper了就有这个漏洞。 怎么修一下呢?

forzjing avatar Aug 04 '22 08:08 forzjing

@forzjing 漏洞瞎提的,版本都不对。。新版本已经解决了,但是漏洞检测没用。

abel533 avatar Aug 06 '22 07:08 abel533

是不是要去这上面提交一下变更。 https://cveform.mitre.org/ 那些刷CVE漏洞的人也真是够了。

guyongquan avatar Aug 10 '22 09:08 guyongquan

建议去CVE反馈一下。 扫描可以临时把这个漏洞supress处理就不会报警了。

Nriver avatar Jan 03 '23 09:01 Nriver

是怎样的写法,才有漏洞呢?

link2023777 avatar Aug 16 '23 07:08 link2023777