HyperSQL DataBase vulnerable to remote code execution when processing untrusted input
Critical severity
GitHub Reviewed
Published
Oct 6, 2022
to the GitHub Advisory Database
•
Updated Jan 27, 2023
Description
Published by the National Vulnerability Database
Oct 6, 2022
Published to the GitHub Advisory Database
Oct 6, 2022
Reviewed
Oct 6, 2022
Last updated
Jan 27, 2023
Those using
java.sql.Statement
orjava.sql.PreparedStatement
in hsqldb (HyperSQL DataBase) to process untrusted input may be vulnerable to a remote code execution attack. By default it is allowed to call any static method of any Java class in the classpath resulting in code execution. The issue can be prevented by updating to 2.7.1 or by setting the system property "hsqldb.method_class_names" to classes which are allowed to be called. For example,System.setProperty("hsqldb.method_class_names", "abc")
or Java argument-Dhsqldb.method_class_names="abc"
can be used. From version 2.7.1 all classes by default are not accessible except those injava.lang.Math
and need to be manually enabled.References