H2O deserializes ML models without filtering, potentially allowing execution of malicious code
(,)
The H2O machine learning platform uses "Iced" classes as the primary means of moving Java Objects around the cluster. The Iced format supports inclusion of serialized Java objects. When a model is deserialized, any class is allowed to be deserialized (no class whitelist). An attacker can construct a crafted Iced model that uses Java gadgets and leads to arbitrary code execution when imported to the H2O platform.
An appropriate malicious serialized object can be created with the ysoserial tool, using the CommonsBeanutils1
payload.
The serialized binary can then be embedded within an Iced model in the proper format.
Loading the model using the Web UI's "Import Model" command (or an equivalent API) will trigger code execution
No mitigations are supplied for this issue
No references are supplied for this issue