背景
研究人员发现了jQuery(一个JavaScript库)中的对象原型污染漏洞(CVE-2019-11358)。
JavaScript对象就像一个变量,但它们不是存储一个值(var car =“Fiat”),而是可以包含基于预定义结构的多个值(var car = {type:“Fiat”,model:“500”,color: “白色”})。原型用于定义对象的默认结构和默认值;必须指定预期的结构,特别是在没有设置值时。
此漏洞使攻击者能够修改Web应用程序的JavaScript对象原型。但是,必须针对特定目标单独微调每个原型目标数据,因此要求攻击者深入了解每个Web应用程序的工作方式。
影响
成功利用此漏洞可能会导致Web应用程序崩溃或改变其行为,如果它未收到预期值,从而影响应用程序处理的其余数据。它还使攻击者能够发起其他攻击,例如拒绝服务或代码执行。原型污染攻击并不是新的,并且多年前就已记录在案。然而,它们现在才被彻底编录,因为JavaScript作为一种语言,已经从处理基本的UI交互演变为使用大量敏感数据作为服务器端编程语言,这多亏了Node.js项目。
建议
v3.4.0之前的jQuery版本受到影响。建议Web开发人员将他们的应用程序更新到最新的jQuery版本。