Description
Firebird is an open-source relational database management system. In versions prior to 5.0.4, 4.0.7 and 3.0.14, the external engine plugin loader concatenates a user-supplied engine name into a filesystem path without filtering path separators or .. components. An authenticated user with CREATE FUNCTION privileges can use a crafted ENGINE name to load an arbitrary shared library from anywhere on the filesystem via path traversal. The library's initialization code executes immediately during loading, before Firebird validates the module, achieving code execution as the server's OS account. This issue has been fixed in versions 5.0.4, 4.0.7 and 3.0.14.
Problem types
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
CWE-427: Uncontrolled Search Path Element
CWE-73: External Control of File Name or Path
CWE-94: Improper Control of Generation of Code ('Code Injection')
Product status
>= 4.0.0, < 4.0.7
>= 5.0.0, < 5.0.4
References
github.com/...rebird/security/advisories/GHSA-7pxc-h3rv-r257
github.com/FirebirdSQL/firebird/releases/tag/v3.0.14
github.com/FirebirdSQL/firebird/releases/tag/v4.0.7
github.com/FirebirdSQL/firebird/releases/tag/v5.0.4