SOFARPC w wersjach wcześniejszych niż 5.11.0 zawiera podatność umożliwiającą zdalne wykonanie poleceń (RCE) poprzez błędnie skonfigurowany mechanizm filtrowania deserializacji. Atakujący bez jakiegokolwiek uwierzytelnienia może wykonać dowolne polecenia systemowe lub przeprowadzić atak JNDI injection.
▸ Pokaż oryginał (EN)
SOFARPC is a Java RPC framework. Versions prior to 5.11.0 are vulnerable to remote command execution. Through a carefully crafted payload, an attacker can achieve JNDI injection or system command execution. In the default configuration of the SOFARPC framework, a blacklist is used to filter out dangerous classes encountered during the deserialization process. However, the blacklist is not comprehensive, and an actor can exploit certain native JDK classes and common third-party packages to construct gadget chains capable of achieving JNDI injection or system command execution attacks. Version 5.11.0 contains a fix for this issue. As a workaround, users can add `-Drpc_serialize_blacklist_override=javax.sound.sampled.AudioFileFormat` to the blacklist.
Framework SOFARPC stosuje czarną listę klas filtrowanych podczas procesu deserializacji, jednak lista ta jest niekompletna. Atakujący może skonstruować specjalnie spreparowany payload wykorzystujący natywne klasy JDK oraz popularne biblioteki firm trzecich do budowy tzw. gadget chains. Za pomocą tych łańcuchów możliwe jest przeprowadzenie ataku JNDI injection lub bezpośrednie wykonanie poleceń systemowych na serwerze docelowym. Podatność klasyfikowana jest jako CWE-917 (Expression Language Injection), a wektor ataku jest sieciowy, bez wymagań dotyczących uwierzytelnienia ani interakcji użytkownika.
Atakujący może uzyskać pełną kontrolę nad systemem, wykonując dowolne polecenia systemowe lub przeprowadzając JNDI injection, co prowadzi do naruszenia poufności, integralności i dostępności atakowanego serwera.
Należy zaktualizować SOFARPC do wersji 5.11.0, która zawiera poprawkę dla tej podatności. Jako obejście (workaround) można dodać parametr `-Drpc_serialize_blacklist_override=javax.sound.sampled.AudioFileFormat` do czarnej listy deserializacji bez aktualizacji frameworka.
SOFARPC (Sofastack Sofa-RPC) w wersjach wcześniejszych niż 5.11.0
Producent udostępnił workaround polegający na rozszerzeniu czarnej listy deserializacji o klasę javax.sound.sampled.AudioFileFormat poprzez parametr JVM. Patch dostępny w repozytorium GitHub pod tagiem v5.11.0.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSofastack Sofarpc
APPSofastack< 5.11.0