# Open eClass 任意文件上传漏洞
## 概述
Open eClass 平台在 4.2 版本之前存在任意文件上传漏洞,位于主题导入功能中。具有管理员权限的攻击者可利用该漏洞在服务器文件系统上上传任意文件,导致远程代码执行。
## 影响版本
4.2 之前的版本
## 细节
漏洞成因是主题导入功能在处理 ZIP 压缩包时,未对包内文件进行任何验证或安全过滤,允许上传包含恶意文件的压缩包,从而在服务器上写入任意文件。
## 影响
攻击者可利用该漏洞实现远程代码执行,完全控制 Web 服务器。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | CVE-2026-22241 Exploit for GUnet Open eClass Unrestricted File Upload Leads to Remote Code Execution (RCE) | https://github.com/Ashifcoder/CVE-2026-22241 | POC详情 |
标题: Unrestricted File Upload Leads to Remote Code Execution (RCE) · Advisory · gunet/openeclass · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键信息摘录
- **漏洞类型**: Unrestricted File Upload Leads to Remote Code Execution (RCE)
- **漏洞描述**: 由于主题导入功能中没有对文件的验证或净化处理, 使得攻击者能够上传任意文件到服务器的文件系统, 进而导致远程代码执行。
- **受影响的版本**: < 4.1
- **修复之后的版本**: None
- **漏洞原因**: 在`modules/admin/theme_options.php`文件中, 缺少对包含在ZIP存档内的文件的验证或净化处理。
```php
$archive = new ZipArchive();
if ($archive->open("courses/theme_data/$file_name")) {
$archive->extractTo('courses/theme_data/temp');
}
```
- **测试环境**:
- Web Server:Apache/2.4.58 (Ubuntu)
- PHP:8.3.6
- Database server:8.0.40-0ubuntu0.24.04.1
- Open eClass版本:4.0.1
- **步骤重现**:
1. 以管理员身份登录。
2. 导入恶意zip文件。
3. 实现远程代码执行。
- **漏洞使用流程**:
- 登录管理后台。
- 导航到"_THEME SETTING_"主题设置页面。
- 创建包含`evil.php`的恶意ZIP存档。
- 通过导入选项上传恶意ZIP文件。
- 利用命令执行漏洞执行远程代码。
- **影响**: 攻击者能够通过上传包含恶意代码的PHP文件并最终实现对服务器的远程控制, 这对教育基础设施的完整性和安全性造成了威胁。
标题: RCE Via Arbitrary File Upload in `theme_details.php` · Advisory · gunet/openeclass · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键漏洞信息
**漏洞类型**: Remote Code Execution (RCE) via Arbitrary File Upload
**受影响版本**: <= 4.2
**修复版本**: > 4.2
**CVE ID**: CVE-2026-22241
**CVE 弱点**: CWE-434 (Unrestricted Upload of File with Dangerous Type)
**严重性**: High (CVSS v3 base score: 7.2/10)
**攻击向量**: Network
**攻击复杂度**: Low
**所需权限**: High
**用户交互**: None
**范围**: Unchanged
**机密性**: High
**完整性**: High
**可用性**: High
**发现者**: Edward Pasenidis 和 Georgios Tyritidis
**补丁状态**: 已修复
**漏洞描述**:
- 主题上传功能允许上传包含任意文件的ZIP,这些文件在解压后会被执行。
- 攻击者可以上传恶意PHP文件,通过 `/courses/theme_data/<theme_id>/` 目录执行远程代码。
- 应用程序未对上传文件路径、内容和扩展名进行验证。
**漏洞细节**:
- `theme_options.php` 文件中的代码未安全处理文件上传逻辑。
- `unserialize` 函数处理了攻击者可控的数据,可能引发远程代码执行。
**利用方法**:
- 创建特定结构的ZIP文件,包含恶意PHP文件。
- 通过访问特定URL执行恶意文件,实现任意代码执行。
**修复建议**:
- 在解压文件前验证文件类型和路径。
- 限制允许的文件扩展名和内容类型。
- 禁用不必要的文件功能或使用安全替代方案,避免使用 `unserialize`。
标题: Admin: Sanitize zip file while uploading a new theme. · gunet/openeclass@3f9d267 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息
- **提交信息**: 管理员在上传新主题时对zip文件进行消毒。这表明之前可能存在安全隐患。
- **修改文件**: `modules/admin/theme_options.php` 文件被修改。
- **代码更改**:
- 引入了对zip文件内容的验证和消毒功能,通过循环遍历每个文件并检查其名称是否为空。
- 添加了对zip文件的提取和临时目录的操作。
- 使用 `validateUploadedFile` 函数检查文件名的安全性。
- **安全性增强**: 添加了对上传文件的安全检查,防止潜在的恶意文件上传和执行。
### 总结
该提交主要关注于增强系统对主题上传功能的安全性,防止通过zip文件上传恶意代码或不安全内容,确保文件名和内容的安全性和合法性。
暂无评论