jorgectf / spring-cloud-function-spel

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring Cloud Function - SpEL Injection (CVE-2022-22963)

cd spring-cloud-function-samples/function-sample-pojo && mvn clean package -DskipTests && java -jar target/function-sample-pojo-2.0.0.RELEASE.jar
codeql database create spring-cloud-function-3.2.X-DB -l java -j0 --search-path /path/to/codeql -c "./mvnw compile -P all -DskipTests -Dos.arch=x86_64"

Fix commit: https://github.com/spring-cloud/spring-cloud-function/commit/dc5128b80c6c04232a081458f637c81a64fa9b52

Research

POCs

CodeQL quick&dirty Source

Add to java/ql/lib/Customizations.qll

private import semmle.code.java.dataflow.FlowSources

class SpringMessage extends DataFlow::Node, RemoteFlowSource {
  SpringMessage() {
    this.asExpr() =
      any(MethodAccess m |
        m.getMethod()
            .hasQualifiedName("org.springframework.messaging",
              any(string s | s.matches("Message%")), "get")
      )
  }

  override string getSourceType() { result = "org.springframework.messaging.Message" }
}

About


Languages

Language:Java 97.6%Language:Kotlin 1.2%Language:Shell 1.0%Language:Ruby 0.1%Language:HTML 0.0%