Snakeyaml 是用于做java对象和yaml文件的序列化与反序列化,即是读取yaml文件的工具类。而Veracode扫描爆出了它可能存在RCE(remote code execution)的问题,大致是说它有一个构造方法对不可信的数据进行反序列化时,没有进行类型的限制,从而会导致被攻击。
而Snakeyaml作为反驳,提到了Spring已经用了建议的SafeConstructor,并且使用白名单过滤只允许创建预期配置的类。如果使用者只用yaml 作为项目的配置文件的话,那么这个是完全安全的可信任数据,并不需要担心CVE的警报。
Snakeyaml 百科也犀利的指出某些爆出他们有这种风险的工具是低配工具,工具本身利用CVE和NIST 的准则去对代码做校验,但是并不深入了解代码本身的实现,仅仅凭借工具类或者包的名称和版本就做报警,是在迷惑众人,为了彰显自己的重要性,从而从中赚钱!
若在扫描中遇到了这样的报警,完全可以申请其是假阳性(false positive)。
参考文献:
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
网友评论