Snakeyaml 是用于做java對(duì)象和yaml文件的序列化與反序列化漾根,即是讀取yaml文件的工具類涌庭。而Veracode掃描爆出了它可能存在RCE(remote code execution)的問(wèn)題保屯,大致是說(shuō)它有一個(gè)構(gòu)造方法對(duì)不可信的數(shù)據(jù)進(jìn)行反序列化時(shí)闹司,沒有進(jìn)行類型的限制,從而會(huì)導(dǎo)致被攻擊游桩。
而Snakeyaml作為反駁,提到了Spring已經(jīng)用了建議的SafeConstructor盹憎,并且使用白名單過(guò)濾只允許創(chuàng)建預(yù)期配置的類铐刘。如果使用者只用yaml 作為項(xiàng)目的配置文件的話,那么這個(gè)是完全安全的可信任數(shù)據(jù)镰吵,并不需要擔(dān)心CVE的警報(bào)檩禾。
Snakeyaml 百科也犀利的指出某些爆出他們有這種風(fēng)險(xiǎn)的工具是低配工具,工具本身利用CVE和NIST 的準(zhǔn)則去對(duì)代碼做校驗(yàn)疤祭,但是并不深入了解代碼本身的實(shí)現(xiàn)盼产,僅僅憑借工具類或者包的名稱和版本就做報(bào)警,是在迷惑眾人勺馆,為了彰顯自己的重要性戏售,從而從中賺錢!
若在掃描中遇到了這樣的報(bào)警草穆,完全可以申請(qǐng)其是假陽(yáng)性(false positive)灌灾。
參考文獻(xiàn):
https://www.baeldung.com/java-snake-yaml
https://bitbucket.org/snakeyaml/snakeyaml/wiki/CVE-2022-1471
https://bitbucket.org/snakeyaml/snakeyaml/wiki/CVE%20&%20NIST.md
https://nvd.nist.gov/vuln/detail/CVE-2022-1471