Spring Integration Framework umożliwia atakującemu zdalne wykonanie kodu poprzez wykorzystanie podatności deserializacji w implementacji Kryo Codec. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika, a jej wykorzystanie może prowadzić do pełnego przejęcia kontroli nad systemem.
▸ Pokaż oryginał (EN)
Spring Integration framework provides Kryo Codec implementations as an alternative for Java (de)serialization. When Kryo is configured with default options, all unregistered classes are resolved on demand. This leads to the "deserialization gadgets" exploit when provided data contains malicious code for execution during deserialization. In order to protect against this type of attack, Kryo can be configured to require a set of trusted classes for (de)serialization. Spring Integration should be proactive against blocking unknown "deserialization gadgets" when configuring Kryo in code.
Spring Integration oferuje implementacje Kryo Codec jako alternatywę dla natywnej serializacji Java. Gdy Kryo skonfigurowany jest z domyślnymi ustawieniami, wszystkie niezarejestrowane klasy są rozwiązywane dynamicznie na żądanie podczas deserializacji. Atakujący może dostarczyć spreparowane dane zawierające złośliwy kod w postaci tzw. 'deserialization gadgets', który zostanie wykonany w momencie deserializacji przez Kryo. Podatność wynika z braku mechanizmu wymuszającego korzystanie wyłącznie z zaufanych, z góry zdefiniowanych klas podczas procesu deserializacji.
Atakujący bez żadnego uwierzytelnienia może doprowadzić do zdalnego wykonania dowolnego kodu (RCE) na serwerze, co skutkuje pełnym naruszeniem poufności, integralności oraz dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami VMware (https://tanzu.vmware.com/security/cve-2020-5413) oraz Oracle. Jako środek zaradczy należy skonfigurować Kryo tak, aby wymagał jawnie zdefiniowanego zestawu zaufanych klas do (de)serializacji, zamiast dynamicznego rozwiązywania niezarejestrowanych klas na żądanie.
VMware Spring Integration (wersje wskazane w referencjach producenta) oraz Oracle Banking Corporate Lending Process Management (wersje wskazane w referencjach Oracle).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HOracle Banking Corporate Lending Process Management
APPOracle14.2.014.3.014.5.0Oracle Banking Credit Facilities Process Management
APPOracle14.2.014.3.014.5.0Oracle Banking Supply Chain Finance
APPOracle14.2.014.3.014.5.0Oracle Banking Virtual Account Management
APPOracle14.2.014.3.014.5.0Oracle Flexcube Private Banking
APPOracle12.0.012.1.0Oracle Retail Customer Management And Segmentation Foundation
APPOracle16.0 – 19.0Oracle Retail Merchandising System
APPOracle16.0.3VMware Spring Integration
APPVmware5.3.0 – 5.3.15.2.0 – 5.2.75.1.0 – 5.1.114.3.0 – 4.3.22
Powiązane podatności
RCE w Spring Cloud Function poprzez złośliwy SpEL routing-expression
Spring4Shell — RCE przez data binding w Spring MVC/WebFlux na JDK 9+
Apache ActiveMQ — RCE przez błędną konfigurację JMX RMIConnectorServer
Apache Camel RabbitMQ — niebezpieczna deserializacja Java (RCE)
Apache Camel Netty — niebezpieczna deserializacja Java (RCE)