Description
In the past Jackson Databind has had numerous vulnerabilities that were related to polymorphic deserialization. In particular, many classes turn out to be insecure when deserialized from untrusted data. These classes are often called deserialization gadgets.
Jackson Databind has addressed such vulnerabilities by maintaining a black-list of classes that must not be deserialized. However, new classes are often identified to be deserialization gadgets, and the black-list needs to be extended frequently.
Right now (checked on 2.9.7 sources and on master) there is no convenient way for users of Jackson Databind to extend the black-list. In particular, users would have to either modify the Jackson Databind sources or re-implement several classes of Jackson Databind.
Instead, it would be great if users could extend the blacklist by means of configuration. This would have the following benefits:
- Users can black-list their own classes that might be deserialization widgets.
(If such classes are not published as open source, it is unlikely that they will ever make it on the built-in black-list that is maintained by Jackson Databind.) - When new classes are added to the built-in black-list that is maintained by Jackson Databind, users can adjust their own black-list accordingly.
(This may be important for users who cannot readily upgrade to the latest Jackson Databind release. It can also help closing the time-gap between classes being proposed for the built-in black-list and an actual release that contains the updated black-list.)