The vulnerability stems from Clojure's proxy class generation mechanism. The generate-proxy function created serializable proxy classes (when extending Serializable interfaces) that stored method implementations in __clojureFnMap. Attackers could craft objects with malicious function mappings that execute during deserialization via HashMap deserialization triggers. The patch explicitly disabled serialization by adding writeObject/readObject methods that throw NotSerializableException, confirming this as the root cause. The test cases added in java_interop.clj specifically validate the proxy serialization prohibition, further reinforcing this as the vulnerable code path.