iemejia commented on PR #3693:
URL: https://github.com/apache/avro/pull/3693#issuecomment-5329707280

   You are right, @vkolomeyko. This is a breaking change, and we need to 
communicate it clearly. We somehow forgot to highlight this @RyanSkraba (my 
excuses for not telling you).
   
   This solution is somewhat radical because it now requires users to 
explicitly opt in to the classes they consider safe to process. The core issue 
is that a carefully crafted Avro Schema could potentially execute arbitrary 
code during deserialization. This is a well-known class of vulnerabilities in 
Java deserialization and has been reported to us multiple times, most recently 
in the context of 
[CVE-2025-30065](https://nvd.nist.gov/vuln/detail/CVE-2025-30065).
   
   For context, the previous changes introduced in issues #3525 and #3538 
implemented most of the required infrastructure for this protection. However, 
the ClassLoader was not correctly validating classes, which is what this PR 
fixes.
   
   The downside is that Avro users must now explicitly declare which classes 
are trusted, a requirement that many users were not expecting. The upside is 
significantly improved security, as it prevents unexpected or malicious code 
execution through schema deserialization.
   
   We've been investing considerable effort in hardening Avro, especially given 
the recent surge in security reports and vulnerability disclosures. This change 
is another step in that direction. Sorry for the inconvenience.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to