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"
}
]
}