51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

以忍者形式修补的高度严重漏洞

2020年4月27日,Wordfence威胁情报团队在Ninja Forms中发现了一个跨站点请求伪造(CSRF)漏洞,这是一个WordPress插件,安装量超过100万。此漏洞可能使攻击者诱骗管理员导入包含恶意JavaScript的联系表单,并用恶意版本替换任何现有的联系表单。

我们根据其负责任的披露准则与Ninja Form的安全团队联系,他们在几个小时内做出了答复。在我们于2020年4月28日首次联系后不到24小时,便对该修补程序进行了修补。

Wordfence防火墙的内置XSS保护可保护所有Wordfence用户(包括Wordfence Premium和免费Wordfence用户)免受针对该漏洞的XSS尝试。


说明: 跨站点请求伪造存储的跨站点脚本
受影响的插件: Ninja Forms
插件插件: ninja-forms
受影响的版本: <3.4.24.2
CVE ID: CVE-2020-12462
CVSS得分: 8.8(高)
CVSS矢量: CVSS :3.0 / AV:N / AC:L / PR:N / UI:R / S:U / C:H / I:H / A:H
完整版本: 3.4.24.2

Ninja Forms插件具有"旧版"模式,该模式允许用户将其样式和功能恢复为该插件最终的2.9.x版本。作为此功能的一部分,它添加了一些AJAX函数,这些函数似乎旨在在"旧版"模式和默认模式之间导入表单和字段。虽然所有这些功能都使用了功能检查,但是其中两个功能无法检查随机数,后者用于验证合法用户是否故意发送了请求。特别是一个功能ninja_forms_ajax_import_form,允许导入包含自定义HTML的表单:

add_action( 'wp_ajax_ninja_forms_ajax_import_form', 'ninja_forms_ajax_import_form' );
function ninja_forms_ajax_import_form(){
if( ! current_user_can( apply_filters( 'ninja_forms_admin_upgrade_import_form_capabilities', 'manage_options' ) ) ) return;

$import = stripslashes( $_POST[ 'import' ] );

$form_id = ( isset( $_POST[ 'formID' ] ) ) ? absint( $_POST[ 'formID' ] ) : '';

WPN_Helper::delete_nf_cache( $form_id ); // Bust the cache.

Ninja_Forms()->form()->import_form( $import, TRUE, $form_id, TRUE );

if( isset( $_POST[ 'flagged' ] ) && $_POST[ 'flagged' ] ){
$form = Ninja_Forms()->form( $form_id )->get();
$form->update_setting( 'lock', TRUE );
$form->save();
}

echo json_encode( array( 'export' => WPN_Helper::esc_html($_POST['import']), 'import' => $import ) );
wp_die();
}

{#highlighter_541622}

这样,如果攻击者能够诱骗管理员单击精心设计的链接,则他们可以使用该管理员的会话来欺骗请求,并将包含恶意JavaScript的表单导入网站。更糟糕的是,可以通过将formID $_POST参数设置为现有表单的ID来用这些导入的表单之一替换站点上的任何现有表单。

根据受害者将JavaScript放置在导入表单中的位置,每当受害者访问包含表单的页面,管理员访问插件的"导入/导出"页面或管理员尝试编辑任何JavaScript表单时,都可以在受害者的浏览器中执行该JavaScript。表单的字段。与跨站点脚本(XSS)攻击一样,可以使用在管理员浏览器中执行的恶意脚本来添加新的管理帐户,从而完成站点接管,而在访客浏览器中执行的恶意脚本可以用于重定向该访客访问恶意网站。

漏洞披露政策很重要

对该补丁进行如此快速修补的原因之一是,该插件的团队维护了负责任的安全披露政策,通常被称为漏洞披露政策。这样一来,我们便可以直接与他们取得完整的披露,而无需花费大量时间尝试寻找或验证适当的联系渠道。尽管我们偶尔会在不到24小时的时间内看到补丁补丁,但类似的回复却非常出色,表明它对安全性的重视程度很高。

如果您对任何类型的软件产品或服务负责,那么拥有漏洞披露政策(VDP)不仅可以提高您收到严重安全问题警报的机会,而且还可以为您的响应设定期望。最重要的是,它可以减少不良行为者在有机会修复它们之前过早或不负责任地泄露和攻击产品漏洞的风险。由于这些原因,我们强烈建议实施VDP,不仅可以提高对特定缺陷的响应效率,而且还可以提高产品的总体安全性。

时间线

2020年4月27日19:00 UTC --我们的威胁情报团队发现并分析了该漏洞,并验证我们现有的防火墙规则是否提供了针对XSS的充分保护。
2020年4月27日19:24 UTC --我们根据插件的开发人员的负责任的安全披露政策向其提供完整的披露。
2020年4月27日20:27 UTC --我们收到答复,称第二天应提供补丁。
2020年4月28日19:00 UTC --已发布修补程序版本。

结论

在今天的帖子中,我们详细介绍了Ninja Forms WordPress插件中的"跨站点请求伪造"漏洞。此漏洞已在3.4.24.2版中完全修复,我们建议所有用户立即更新到最新的可用版本。通过Wordfence防火墙的内置保护功能,可以保护运行Wordfence Premium的站点以及仍在使用免费版本的Wordfence的站点免受针对此漏洞的跨站点脚本攻击。如果您认识使用此插件的朋友或同事,我们建议您尽快将此建议转发给他们,以帮助他们保护其网站。

赞(0)
未经允许不得转载:工具盒子 » 以忍者形式修补的高度严重漏洞