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", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "3.46.1-3", "binary_name": "lemon" }, { "binary_version": "3.46.1-3", "binary_name": "lemon-dbgsym" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-0" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-0-dbgsym" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-dev" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-ext-csv" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-ext-csv-dbgsym" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-ext-icu" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-ext-icu-dbgsym" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-tcl" }, { "binary_version": "3.46.1-3", "binary_name": "libsqlite3-tcl-dbgsym" }, { "binary_version": "3.46.1-3", "binary_name": "sqlite3" }, { "binary_version": "3.46.1-3", "binary_name": "sqlite3-dbgsym" }, { "binary_version": "3.46.1-3", "binary_name": "sqlite3-doc" }, { "binary_version": "3.46.1-3", "binary_name": "sqlite3-tools" }, { "binary_version": "3.46.1-3", "binary_name": "sqlite3-tools-dbgsym" } ] }