SQLite version 3.8.9 suffers from two read heap overflow errors.
6d38b29159cb2a72081129ea22c70ddea6a6ec86333d10d263a11edc4d1c9794
https://blog.fuzzing-project.org/10-Two-invalid-read-errors-heap-overflows-in-SQLite-TFPA-0062015.html
While fuzzing SQLite I discovered two read heap overflow errors. One is
in the database file parser, one in the sql command parser. Both issues
are present in SQLite 3.8.9 and are fixed in SQLite 3.8.10.1. These
bugs can be seen with either valgrind or address sanitizer.
Passing the command ".\" will cause a one byte heap overflow in the
function resolve_backslashes().
https://crashes.fuzzing-project.org/TFPA-2015-006-sqlite-heapoverflow-resolve_backslashes.sql
Sample input file (test with sqlite3 < [inputfile])
https://www.sqlite.org/cgi/src/info/e018f4bf1f27f783
Upstream commit / patch
Parsing a malformed database file will cause a heap overflow of several
bytes in the function sqlite3VdbeExec(). This only matters if your
attack scenario involves parsing untrusted database files.
https://crashes.fuzzing-project.org/TFPA-2015-006-sqlite-heapoverflow-sqlite3VdbeExec.sqlite
Sample input file (test with sqlite3 [inputfile] .dump)
https://www.sqlite.org/cgi/src/info/f71053cf658b3260
Upstream commit / patch
Please also note:
http://lcamtuf.blogspot.de/2015/04/finding-bugs-in-sqlite-easy-way.html
Finding bugs in SQLite, the easy way - Michal Zalewski fuzzed SQLite
with a dictionary - most of these were already fixed in 3.8.9, the
version I was testing.
https://www.sqlite.org/testing.html#aflfuzz
SQL Fuzz Using The American Fuzzy Lop Fuzzer -
SQLite developers themselve now use regular fuzz testing to find
further bugs.
https://sqlite.org/releaselog/3_8_10_1.html
SQLite 3.8.10.1 release notes mention fixes for "many
obscure problems discovered while SQL fuzzing", so there are likely
more fixes than the two I mentioned above.
--
Hanno Böck
http://hboeck.de/
mail/jabber: hanno@hboeck.de
GPG: BBB51E42