diff --git a/sdks/java/extensions/kryo/src/main/java/org/apache/beam/sdk/extensions/kryo/KryoCoder.java b/sdks/java/extensions/kryo/src/main/java/org/apache/beam/sdk/extensions/kryo/KryoCoder.java index 8f6660cf5b78..e89a61f43ab8 100644 --- a/sdks/java/extensions/kryo/src/main/java/org/apache/beam/sdk/extensions/kryo/KryoCoder.java +++ b/sdks/java/extensions/kryo/src/main/java/org/apache/beam/sdk/extensions/kryo/KryoCoder.java @@ -41,6 +41,13 @@ * Coder using Kryo as (de)serialization mechanism. See {@link KryoCoderProvider} to get more * details about usage. * + *

Warning: Kryo deserialization (especially with the default {@code + * kryoRegistrationRequired=false} setting in {@link KryoOptions}) can instantiate arbitrary classes + * and is unsafe when applied to untrusted data. Do not use {@link KryoCoder} to deserialize + * untrusted external input. To restrict deserialization to an explicit set of allowed classes, + * enable {@link KryoOptions#setKryoRegistrationRequired(boolean)} and register classes via {@link + * KryoRegistrar}. + * * @param type of element coder can handle */ public class KryoCoder extends CustomCoder {