Description
Each Apache Dubbo server will set a serialization id to tell the clients which serialization protocol it is working on. But for Dubbo versions before 2.7.8 or 2.6.9, an attacker can choose which serialization id the Provider will use by tampering with the byte preamble flags, aka, not following the server's instruction. This means that if a weak deserializer such as the Kryo and FST are somehow in code scope (e.g. if Kryo is somehow a part of a dependency), a remote unauthenticated attacker can tell the Provider to use the weak deserializer, and then proceed to exploit it.
Remediation
References
https://lists.apache.org/thread.html/r99ef7fa35585d3a68762de07e8d2b2bc48b8fa669a03e8d84b9673f3%40%3Cdev.dubbo.apache.org%3E
Related Vulnerabilities
CVE-2019-16545 Vulnerability in maven package org.jenkins-ci.plugins:qmetry-for-jira-test-management
CVE-2020-7788 Vulnerability in maven package org.webjars.bowergithub.npm:ini
CVE-2021-40110 Vulnerability in maven package org.apache.james:james-server
CVE-2022-45143 Vulnerability in maven package org.apache.tomcat.embed:tomcat-embed-core
CVE-2023-49373 Vulnerability in maven package com.jfinal:jfinal