| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|
| org.apache.parquet:parquet-avro | maven | < 1.15.2 | 1.15.2 |
The vulnerability allows arbitrary code execution via schema parsing in parquet-avro when using 'specific' or 'reflect' models, due to insecure handling of classes specified by 'java-class' or 'java-key-class' properties in Avro schemas. The provided patch (commit 2fef79bb53ea0a894e4bae861faa8105ca9da15b) introduces a new validation mechanism (ReflectClassValidator) and applies it before classes are loaded.
org.apache.parquet.avro.AvroRecordConverter.getStringableClass: This method is directly responsible for extracting the class name string from the Avro schema properties (java-class, java-key-class) and then loading the class using ClassUtils.forName. The patch explicitly adds a call to validator.validate(stringableClass) immediately before the class loading attempt. This indicates that, prior to the patch, this method would load classes without this robust validation, making it a primary vulnerable point if a malicious class name was present in the schema.
org.apache.parquet.avro.AvroConverters.FieldStringableConverter (constructor): This constructor was used for classes that are stringable. The patch removed a call to an internal checkSecurity(Class<?> clazz) method from this constructor. The checkSecurity method itself was also removed. This method contained the previous, flawed validation logic which relied on a SERIALIZABLE_PACKAGES list. The vulnerability description notes that "the default setting of trusted packages still allows malicious classes from these packages to be executed." The checkSecurity method and the default trusted packages were insufficient, making this constructor a vulnerable point if it processed a malicious class that passed the old checks.
Both functions were involved in processing and/or validating classes derived from schema information, and the patch modifications clearly show how their security posture was hardened. These are the functions where the lack of proper validation, or reliance on flawed validation, would lead to the execution of malicious code.
KEV Misses 88% of Exploited CVEs- Get the report