SOFARPC w wersjach przed 5.12.0 zawiera podatność umożliwiającą obejście mechanizmu ochrony opartego na blackliście podczas deserializacji danych protokołem SOFA Hessian. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia ani udziału użytkownika i może być wykorzystana zdalnie.
▸ Pokaż oryginał (EN)
SOFARPC is a Java RPC framework. SOFARPC defaults to using the SOFA Hessian protocol to deserialize received data, while the SOFA Hessian protocol uses a blacklist mechanism to restrict deserialization of potentially dangerous classes for security protection. But, prior to version 5.12.0, there is a gadget chain that can bypass the SOFA Hessian blacklist protection mechanism, and this gadget chain only relies on JDK and does not rely on any third-party components. Version 5.12.0 fixed this issue by adding a blacklist. SOFARPC also provides a way to add additional blacklists. Users can add a class like `-Drpc_serialize_blacklist_override=org.apache.xpath.` to avoid this issue.
SOFARPC domyślnie używa protokołu SOFA Hessian do deserializacji odbieranych danych i stosuje mechanizm blacklisty, aby blokować deserializację potencjalnie niebezpiecznych klas. Istnieje jednak łańcuch gadżetów (gadget chain), który pozwala ominąć tę blacklistę. Co istotne, łańcuch ten opiera się wyłącznie na komponentach wbudowanych w JDK i nie wymaga żadnych zewnętrznych bibliotek. Atakujący może wysłać spreparowany payload, który zostanie zdeserializowany przez serwer z pominięciem zabezpieczeń.
Pomyślne wykorzystanie podatności może pozwolić atakującemu na wykonanie dowolnego kodu na serwerze (RCE), co w konsekwencji może prowadzić do pełnego przejęcia systemu, ujawnienia poufnych danych lub zakłócenia jego działania.
Należy zaktualizować SOFARPC do wersji 5.12.0 lub nowszej, która rozszerza blacklistę deserializacji. Jako obejście tymczasowe można dodać własne wpisy do blacklisty za pomocą parametru JVM: `-Drpc_serialize_blacklist_override=org.apache.xpath.` (lub innych odpowiednich klas) zgodnie z dokumentacją producenta.
SOFARPC (sofastack/sofa-rpc) w wersjach przed 5.12.0
Podatność dotyczy wyłącznie środowisk, w których SOFARPC nasłuchuje na publicznych lub niezaufanych interfejsach sieciowych. Łańcuch gadżetów wykorzystuje wyłącznie klasy JDK, co eliminuje konieczność obecności zewnętrznych bibliotek i zwiększa powszechność podatności.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSofastack Sofarpc
APPSofastack< 5.12.0