CVE-2026-7045baomidou dynamic-datasource 2.5.0版本存在严重的SpEL表达式注入漏洞。该漏洞源于组件DsSpelExpressionProcessor#doDetermineDatasource函数在处理数据源名称时,不安全地使用了StandardEvaluationContext解析SpEL表达式。攻击者可利用此漏洞在无需用户交互的情况下发起远程攻击,导致系统机密性、完整性和可用性受损。建议用户及时升级或应用相关补丁。
该漏洞位于baomidou dynamic-datasource组件的SpEL表达式处理逻辑中。具体受影响的文件是dynamic-datasource-spring/src/main/java/com/baomidou/dynamic/datasource/processor/DsSpelExpressionProcessor.java,问题函数为DsSpelExpressionProcessor#doDetermineDatasource。在解析动态数据源标识符时,代码直接使用了StandardEvaluationContext来配合SpelExpressionParser解析表达式。StandardEvaluationContext是Spring SpEL中功能最全的上下文类型,它默认允许访问任意Java类、方法和属性,且缺乏严格的安全限制。攻击者若能控制传入该方法的参数(例如通过HTTP请求传递恶意的数据源名称),即可注入特定的SpEL Payload。例如,通过构造T(java.lang.Runtime).getRuntime().exec('calc')等表达式,攻击者可在目标服务器上执行任意系统命令,进而完全控制服务器。这导致了远程代码执行的风险,严重威胁应用安全。