最新Typecho程序的feed漏洞危害以及解决方法

最近半年多,我懵仙兔兔的服务器总是时不时CPU负载爆满,后面我检索Typecho程序,发现feed存在查询漏洞。
Typecho程序的feed在查询网站页面等都没有问题,但是在查询时间这里就出现了问题。
当查询的时间不存在时就会重复查询,从而导致查询内存溢出。

触发例子

例如:

/feed/2021/
/feed/rss/2021/
/feed/atom/2021/
/feed/2021/07/
/feed/rss/2021/07/
/feed/atom/2021/07/

因为现在是2020年03月,所以查询没有文章的时间就会触发此漏洞。

例如:

/feed/2019/10/
/feed/rss/2019/10/
/feed/atom/2019/10/

这个也会触发,因为懵仙兔兔在2019年10月并没有写文章。

漏洞危害

讲了这么多,都还没讲这个漏洞带来的危害。
此漏洞应反复死循环查询而引起的,将会带来php-fpm占用高CPU和内存,以及数据库占用内存。
这只是访问异常所引起的,那如果每分钟访问10次呢(换IP),100次呢,以及更多。

我稍微测试了一下,只要在一秒内同时访问20次(总共只访问20次)。
就会使1H1G的服务器直接宕机,所以如果有人利用此漏洞,只需很小成本就能使他人服务器宕机。因此漏洞危害较大。

临时解决方法

添加URL黑名单:

/feed/\d{4}
/feed/rss/\d{4}
/feed/atom/\d{4}

添加白名单:

/feed/201{8~9}
/feed/rss/201{8~9}
/feed/atom/201{8~9}
/feed/2020
/feed/rss/2020
/feed/atom/2020

至于白名单就只能搞你自己配置了,当然是配置有时间的文章。

等我有空就会搞个万能的方法(修改代码),当然我告知了Typecho维护者。

啊,我今天下午一口气写了俩篇文章,累啊。。。