An integer overflow can be triggered in SQLite’s concat_ws()
function. The resulting, truncated integer is then used to allocate a buffer. When SQLite then writes the resulting string to the buffer, it uses the original, untruncated size and thus a wild Heap Buffer overflow of size ~4GB can be triggered. This can result in arbitrary code execution.
{ "availability": "No subscription required", "binaries": [ { "binary_name": "lemon", "binary_version": "3.45.1-1ubuntu2.3" }, { "binary_name": "libsqlite3-0", "binary_version": "3.45.1-1ubuntu2.3" }, { "binary_name": "libsqlite3-dev", "binary_version": "3.45.1-1ubuntu2.3" }, { "binary_name": "libsqlite3-tcl", "binary_version": "3.45.1-1ubuntu2.3" }, { "binary_name": "sqlite3", "binary_version": "3.45.1-1ubuntu2.3" }, { "binary_name": "sqlite3-tools", "binary_version": "3.45.1-1ubuntu2.3" } ] }