pgjdbc Does Not Check Class Instantiation when providing Plugin Classes
Package
Affected versions
>= 9.4.1208, < 42.2.25
>= 42.3.0, < 42.3.2
Patched versions
42.2.25
42.3.2
Description
Reviewed
Feb 1, 2022
Published to the GitHub Advisory Database
Feb 2, 2022
Published by the National Vulnerability Database
Feb 2, 2022
Last updated
Jan 31, 2023
Impact
pgjdbc instantiates plugin instances based on class names provided via
authenticationPluginClassName
,sslhostnameverifier
,socketFactory
,sslfactory
,sslpasswordcallback
connection properties.However, the driver did not verify if the class implements the expected interface before instantiating the class.
Here's an example attack using an out-of-the-box class from Spring Framework:
The first impacted version is REL9.4.1208 (it introduced
socketFactory
connection property)References