最新公告
  • 欢迎您光临源库坊,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • LearnPress中修补的高严重性漏洞

    2020年3月16日,LearnPress – WordPress LMS插件(一个具有80,000多个安装的WordPress插件)修复了一个严重性漏洞,该漏洞使订户级用户可以将其权限提升为“ LP Instructor”(具有功能的自定义角色)的权限与WordPress的“作者”角色相似,包括能够上传文件和创建包含未过滤HTML的帖子,这两种功能都可以用作允许站点接管的漏洞利用链的一部分。

    我们的威胁情报团队分析了该漏洞,以创建防火墙规则来保护Wordfence客户。在此过程中,我们发现了另外两个漏洞。这些漏洞之一与原始漏洞的后果几乎相同,因为它允许攻击者将任何用户的权限提升为“ LP Instructor”。另一个允许具有最小权限的登录用户(例如订户)在网站上创建具有任意标题的新页面,并更改任何现有帖子或页面的状态。

    我们于2020年3月17日第二天向插件作者私下披露了这些漏洞,并迅速收到了回复。但是,不幸的是,超过一个月没有发布任何补丁。我们在2020年4月16日跟进了该插件的作者,在未收到任何回复后,与WordPress插件团队联系。几个小时后,插件开发者重新联系并通知我们补丁正在开发中。经过充分修补的版本最终于2020年4月22日发布。

    我们强烈建议立即更新到3.2.6.9版,因为这些安全问题已在该版本中得到了全面修补。

    Wordfence Premium用户于2020年3月16日收到一条新的防火墙规则,以防止针对原始漏洞和新发现的漏洞的攻击。免费Wordfence用户于2020年4月15日收到此规则。

    说明



    受影响的
    特权升级插件:LearnPress 


    插件插件
    :学习的


    受影响版本
    :<3.2.6.9 


    CVE ID
    :CVE-2020-11511 


    CVSS Vecto

    CVSS:3.0 / AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:L / A:L / E:P / RL:O / RC:C 


    CVSS得分
    :8.6(高)补丁


    版本
    :3.2.6.9

    LearnPress是一个WordPress插件,允许站点所有者创建一个在线学习门户,其中包括将用户分配为能够向站点添加自己的课程资料的“ LP讲师”的功能。每当用户请求成为一名讲师时,该插件的一项功能便会向管理员发送电子邮件,从而允许该管理员通过单击链接批准请求。处理此请求的功能会在插件加载后自动运行,因此始终会“监听”特定参数:

    function learn_press_accept_become_a_teacher() {
       $action  = ! empty( $_REQUEST['action'] ) ? $_REQUEST['action'] : '';
       $user_id = ! empty( $_REQUEST['user_id'] ) ? $_REQUEST['user_id'] : '';
       if ( ! $action || ! $user_id || ( $action != 'accept-to-be-teacher' ) ) {
           return;
       }
    
       if ( ! learn_press_user_maybe_is_a_teacher( $user_id ) ) {
           $be_teacher = new WP_User( $user_id );
           $be_teacher->set_role( LP_TEACHER_ROLE );
           delete_transient( 'learn_press_become_teacher_sent_' . $user_id );
           do_action( 'learn_press_user_become_a_teacher', $user_id );
           $redirect = add_query_arg( 'become-a-teacher-accepted', 'yes' );
           $redirect = remove_query_arg( 'action', $redirect );
           wp_redirect( $redirect );
       }
    }
    
    add_action( 'plugins_loaded', 'learn_press_accept_become_a_teacher' );

    由于添加了此功能的方式,攻击者可能会将action参数设置为accept-to-be-teacher,将user_id参数设置为用户的ID的请求发送到wp-admin中的任何有效位置,以授予教师特权。这意味着即使未经身份验证的攻击者也可以发送wp-admin/admin-post.php包含这些参数的请求,并提升他们选择的用户的权限,尽管他们需要自己的用户ID才能充分利用此漏洞。

    授予用户LP Instructor角色后,他们就可以创建新的帖子,课程,课程和测验。此外,LP Instructor还授予用户通常仅保留给编辑者和管理员的unfiltered_html功能:该功能允许他们将自定义代码插入他们创建的任何页面中。借助此功能,攻击者可以轻松地将恶意JavaScript插入他们创建的任何帖子中,然后如果登录的管理员查看了其中一个帖子,则可以将其用于将访客重定向到恶意网站,甚至可以用于站点接管。

    说明




    认证的页面创建和状态修改受影响的插件:LearnPress 


    插件插件
    :learningpress 


    受影响的版本
    :<3.2.6.9 


    CVE ID
    :CVE-2020-11510 


    CVSS矢量

    CVSS:3.0 / AV:N / AC:L / PR:L / UI:N / S:U / C:N / I:L / A:H / E:F / RL:U / RC:C 


    CVSS评分
    :7.1(高)


    修补版本
    :3.2.6.9

    LearnPress插件还通过AJAX操作处理了多个任务,这些任务缺少随机数检查和功能检查。它会循环注册AJAX动作,尽管其中许多功能至少使用了功能检查:

    			$ajaxEvents = array(
    				'create_page'             => false,
    				'plugin_action'           => false,
    				'modal_search_items'      => false,
    				'dismiss_notice'          => false,
    				'search_users'            => false,
    				'load_chart'              => false,
    				'search_course_category'  => false,
    				/////////////
    				//'be_teacher'              => false,
    				'custom_stats'            => false,
    				'ignore_setting_up'       => false,
    				'get_page_permalink'      => false,
    				'dummy_image'             => false,
    				'update_add_on_status'    => false,
    				//'plugin_install'          => false,
    				'bundle_activate_add_ons' => false,
    				'install_sample_data'     => false,
    
    				// Remove Notice
    				'remove_notice_popup'     => false,
    				// Update order status
    				'update_order_status'     => false,
    			);
    			foreach ( $ajaxEvents as $ajaxEvent => $nopriv ) {
    				add_action( 'wp_ajax_learnpress_' . $ajaxEvent, array( __CLASS__, $ajaxEvent ) );

    一种操作update_order_status旨在允许管理员将LearnPress订单标记为已付款或已退款。不幸的是,该功能接受了任何帖子ID和任何状态,甚至不存在任何ID。因此,它是可能的攻击者将请求发送到wp-admin/admin-ajax.php与所述action参数集learnpress_update_order_status,所述order_id集到邮政ID来修改,并且value参数设置为所期望的后状态。这将使攻击者可以发布或删除任何现有的帖子或页面,甚至将其设置为不存在的状态,此时,该帖子或页面将不再出现在网站上,也无法通过wp-admin访问,并且只能通过修改它在数据库中的状态。

           public static function update_order_status() {
    
               $order_id = learn_press_get_request( 'order_id' );
               $value    = learn_press_get_request( 'value' );
    
               $order = array(
                   'ID'          => $order_id,
                   'post_status' => $value,
               );
    
               wp_update_post( $order ) ? $response['success'] = true : $response['success'] = false;
    
               learn_press_send_json( $response );
    
               die();
           }

    另一个易受攻击的操作称为函数,create_page该函数旨在在设置向导中使用,以便创建LearnPress需要起作用的默认页面。这意味着攻击者可以发送请求wp-admin/admin-ajax.phpaction参数集learnpress_create_pagepage_name参数设置为自己选择的值。

    		public static function create_page() {
    			$page_name = ! empty( $_REQUEST['page_name'] ) ? $_REQUEST['page_name'] : '';
    			$response  = array();
    			if ( $page_name ) {
    
    				if ( $page_id = LP_Helper::create_page( $page_name ) ) {
    					$response['page'] = get_post( $page_id );
    					$html             = learn_press_pages_dropdown( '', '', array( 'echo' => false ) );
    					preg_match_all( '!value=\"([0-9]+)\"!', $html, $matches );
    					$response['positions'] = $matches[1];
    					$response['html']      = '<a href="' . get_edit_post_link( $page_id ) . '" target="_blank">' . __( 'Edit Page', 'learnpress' ) . '</a>&nbsp;';
    					$response['html']      .= '<a href="' . get_permalink( $page_id ) . '" target="_blank">' . __( 'View Page', 'learnpress' ) . '</a>';
    				} else {
    					$response['error'] = __( 'Error! Page creation failed. Please try again.', 'learnpress' );
    				}
    			} else {
    				$response['error'] = __( 'Empty page name!', 'learnpress' );
    			}
    			learn_press_send_json( $response );
    		}

    尽管不那么严重,但此漏洞仍将允许攻击者发布标题中带有垃圾邮件链接的页面,并将其用作恶意SEO活动的一部分。

    披露时间表

    20203月16日 – Wordfence威胁情报在分析最近修补的漏洞时,在LearnPress插件中发现了未修补的漏洞。为Wordfence Premium用户发布的防火墙规则。最初与插件开发人员联系。
    20203月17日 –插件开发人员确认适当的收件箱以进行讨论。已发送漏洞的完整披露。
    20204月15日 –免费Wordfence用户可以使用防火墙规则。
    20204月16日 –插件开发者的后续行动(尚未解决的问题)。
    20204月20日 –我们就此问题与WordPress插件小组联系,并在不久后收到了插件开发人员的回复。
    2020年4月22日 –已发布足够补丁的版本。

    结论

    在本文中,我们详细介绍了LearnPress插件中的两个漏洞,其中包括特权提升漏洞以及帖子创建和修改漏洞。这些缺陷已在3.2.6.9版中完全修复,我们敦促用户尽快更新到最新的可用版本。自2020年3月16日起,运行Wordfence Premium的网站已受到保护,免受这些漏洞的侵害;自2020年4月15日以来,仍处于免费版本的Wordfence中的网站已受到保护。如果您当前以学生身份使用运行LearnPress的网站,请转发此信息向网站管理员咨询。

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"www.yuankufang.com",如遇到无法解压的请联系管理员!
    源库坊 » LearnPress中修补的高严重性漏洞

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    源库坊
    一个高级程序员模板开发平台
    • 355会员总数(位)
    • 1195资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1576稳定运行(天)

    提供最优质的资源集合

    赞助本站svip 了解详情