Description
Firebird is an open-source relational database management system. In versions prior to 5.0.4, 4.0.7 and 3.0.14, when deserializing a slice packet, the xdr_datum() function does not validate that a cstring length conforms to the slice descriptor bounds, allowing a cstring longer than the allocated buffer to overflow it. An unauthenticated attacker can exploit this by sending a crafted packet to the server, potentially causing a crash or other security impact. This issue has been fixed in versions 5.0.4, 4.0.7 and 3.0.14.
Problem types
CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
CWE-502: Deserialization of Untrusted Data
Product status
>= 4.0.0, < 4.0.7
>= 5.0.0, < 5.0.4
References
github.com/...rebird/security/advisories/GHSA-89mq-229g-x47p
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