安全升級(jí)公告
最近發(fā)現(xiàn)fastjson在1.2.24以及之前版本存在遠(yuǎn)程代碼執(zhí)行高危安全漏洞,為了保證系統(tǒng)安全周瞎,請(qǐng)升級(jí)到1.2.28/1.2.29/1.2.30/1.2.31或者更新版本笆呆。
1.2.29//1.2.30/1.2.31是在1.2.28版本上修復(fù)了一些大家升級(jí)過(guò)程中遇到的問(wèn)題的版本衷戈,非安全問(wèn)題,如果升級(jí)到1.2.25~1.2.28以及各種sec01版本的稠通,也是沒(méi)有安全問(wèn)題的衬衬。
1.2.25/1.2.26/1.2.27/1.2.28/1.2.29/1.2.30都是在升級(jí)的過(guò)程中修復(fù)不兼容問(wèn)題發(fā)布的過(guò)度版本,如果你是在此之前升級(jí)到這些版本改橘,不用因?yàn)檫@次的安全問(wèn)題再次升級(jí)滋尉。
更新方法
1. Maven依賴配置更新
通過(guò)maven配置更新,使用最新版本飞主,如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
<!-- 1.2.41是最新的版本 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.41</version>
</dependency>
注意狮惜,版本號(hào)1.2.3~1.2.9版本都比1.2.31小,都是需要升級(jí)的既棺。
2. 直接下載
- 1.2.31版本下載地址
http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.31/ - 1.2.41版本下載地址
http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.41/
常見(jiàn)問(wèn)題
1. 升級(jí)遇到不兼容問(wèn)題怎么辦讽挟?
1.2.28/1.2.29/1.2.30/1.2.31已經(jīng)修復(fù)了絕大多數(shù)兼容問(wèn)題,但是總會(huì)有一些特殊的用法導(dǎo)致不兼容丸冕,如果你遇到不兼容問(wèn)題耽梅,通過(guò) https://github.com/alibaba/fastjson/wiki/incompatible_change_list 查看不兼容問(wèn)題,鏈接的后面提供了遇到不兼容問(wèn)題之后的使用相應(yīng)的sec01版本解決辦法胖烛。
2. 升級(jí)之后報(bào)錯(cuò)autotype is not support
安全升級(jí)包禁用了部分autotype的功能眼姐,也就是"@type"這種指定類型的功能會(huì)被限制在一定范圍內(nèi)使用。如果你使用場(chǎng)景中包括了這個(gè)功能佩番,https://github.com/alibaba/fastjson/wiki/enable_autotype 這里有一個(gè)介紹如何添加白名單或者打開(kāi)autotype功能众旗。
3. 通過(guò)配置打開(kāi)autotype之后是否存在安全漏洞
在1.2.28/1.2.29以及所有的.sec01版本中,有多重保護(hù)趟畏,但打開(kāi)autotype之后仍會(huì)存在風(fēng)險(xiǎn)贡歧,不建議打開(kāi),而是使用一個(gè)較小范圍的白名單。打開(kāi)autoType建議升級(jí)到最新版本1.2.37以上
4. Android環(huán)境使用是否需要升級(jí)
目前未發(fā)現(xiàn)漏洞對(duì)Android系統(tǒng)產(chǎn)生影響利朵,在Android環(huán)境中使用不用升級(jí)律想。
5. 升級(jí)遇到問(wèn)題希望提供支持怎么辦?
作者愿意幫助大家一起解決問(wèn)題绍弟,如果遇到文檔中沒(méi)說(shuō)明到的問(wèn)題技即,請(qǐng)通過(guò)如下方式聯(lián)系作者:
- 釘釘號(hào) wenshaojin2017
- 微信號(hào) wenshaojin
- 微博 http://weibo.com/wengaotie
6. 有沒(méi)有漏洞利用詳情可以提供
為了保證更多用戶的安全,目前不適合擴(kuò)散漏洞利用的細(xì)節(jié)
7. 是否有在WAF上檢測(cè)的辦法
檢測(cè)post內(nèi)容中是否包含如下字符
"@type"
注意樟遣,為了減少誤報(bào)而叼,包括雙引號(hào)
8. 檢測(cè)當(dāng)前使用版本的是否有問(wèn)題
- 通過(guò)maven dependency檢測(cè)
如果是maven工程,在代碼根目錄下執(zhí)行如下命令豹悬,如果有返回葵陵,就是需要升級(jí)
mvn dependency:tree | grep "com.alibaba.fastjson:"
| grep -v sec01 | grep -v 1.2.25 | grep -v 1.2.26 | grep -v 1.2.27 | grep -v 1.2.28 | grep -v 1.2.29 | grep -v 1.2.30 | grep -v 1.2.31
- 在lib目錄下執(zhí)行如下腳本命令,可以判斷版本是否有問(wèn)題
ls | grep fastjson | grep jar
| grep -v sec01 | grep -v 1.2.25 | grep -v 1.2.26 | grep -v 1.2.27
| grep -v 1.2.28 | grep -v 1.2.29 | grep -v 1.2.30 | grep -v 1.2.31
請(qǐng)注意瞻佛,為了方便閱讀埃难,加上了換行符,請(qǐng)使用時(shí)把上面的三行合并成一行涤久。
- 看打開(kāi)的文件中是否包含fastjson
sudo -u admin lsof -X | grep -v 1.2.25 | grep -v 1.2.26 | grep -v 1.2.27
| grep -v 1.2.28 | grep -v 1.2.29 | grep -v 1.2.30 | grep -v 1.2.31
請(qǐng)注意涡尘,為了方便閱讀,加上了換行符响迂,請(qǐng)使用時(shí)把上面的兩行合并成一行考抄。另外通過(guò)lsof檢測(cè),在tomcat某些場(chǎng)景是檢測(cè)不出來(lái)的蔗彤,最好在lib目錄下用ls檢測(cè)(第2中方法)川梅。
參考: