发布网友 发布时间:2024-10-24 15:26
共1个回答
热心网友 时间:2024-11-06 16:19
Spring Cloud Function,作为基于Spring Boot的函数计算框架,为开发者提供了一个在多种FaaS平台如AWS Lambda上部署功能的通用模型。它简化了底层传输和架构,让开发者专注于核心业务逻辑。然而,从版本3.0.0到3.2.2(包括未发布的3.2.2),存在一个Spring Cloud Function SpEL表达式注入的安全漏洞。
要复现这个漏洞,首先通过Spring Initializr创建一个项目,选择Java和特定JDK版本,添加Spring Web和Function依赖。默认情况下,无需修改,启动项目并在本地8080端口发送特定payload即可观察到问题。
漏洞根源在于RoutingFunction组件,其在处理带有特定Header信息的请求时,会使用SpEL解析routingExpression,导致表达式注入。原始代码中,解析过程使用了安全隐患较大的StandardEcaluationContext,而官方修复中引入了仅支持基本功能的SimpleEvaluationContext,同时引入了isViaHead参数,以判断表达式是否来自Header。
修复建议是,在官方发布正式版本前,务必备份数据,以防意外。你可以选择拉取最新修复代码并重新编译以临时避免漏洞。同时,官方已针对此漏洞进行修复,但具体何时发布新版本还需关注官方公告。