Skip to contentSkip to conversation

sqlite: add security patches

PATCH New Baruch Siach 2 participants 5 messages Oct 22, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sqlite: add security patches

CVE-2017-13685: The dump_callback function in SQLite 3.20.0 allows remote attackers to cause a denial of service (EXC_BAD_ACCESS and application crash) via a crafted file.

CVE-2017-15286: SQLite 3.20.1 has a NULL pointer dereference in tableColumnList in shell.c
because it fails to consider certain cases where sqlite3_step(pStmt)==SQLITE_ROW is false and a data structure is never initialized.

---
 package/sqlite/0001-CVE-2017-13685.patch | 54 ++++++++++++++++++++++++++++++++
 package/sqlite/0002-CVE-2017-15286.patch | 28 +++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 package/sqlite/0001-CVE-2017-13685.patch
 create mode 100644 package/sqlite/0002-CVE-2017-15286.patch
package/sqlite/0001-CVE-2017-13685.patch new file +54 -0
new file mode 100644
index 000000000000..9fd88f27e2e6
@@ -0,0 +1,54 @@
+Fix CVE-2017-13685
+
+The dump_callback function in SQLite 3.20.0 allows remote attackers to cause a
+denial of service (EXC_BAD_ACCESS and application crash) via a crafted file.
+
+Patch taken from Debian:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=873762
+
+Upstream issue: https://sqlite.org/src/info/02f0f4c54f2819b3
+
+Signed-off-by: Baruch Siach <[email protected]>
+
+Index: src/shell.c
+==================================================================
+--- src/shell.c
++++ src/shell.c
+@@ -2657,10 +2657,11 @@
+   int *aiType      /* Column types */
+ ){
+   int i;
+   ShellState *p = (ShellState*)pArg;
+ 
++  if( azArg==0 ) return 0;
+   switch( p->cMode ){
+     case MODE_Line: {
+       int w = 5;
+       if( azArg==0 ) break;
+       for(i=0; i<nArg; i++){
+@@ -3007,10 +3008,11 @@
+ */
+ static int captureOutputCallback(void *pArg, int nArg, char **azArg, char **az){
+   ShellText *p = (ShellText*)pArg;
+   int i;
+   UNUSED_PARAMETER(az);
++  if( azArg==0 ) return 0;
+   if( p->n ) appendText(p, "|", 0);
+   for(i=0; i<nArg; i++){
+     if( i ) appendText(p, ",", 0);
+     if( azArg[i] ) appendText(p, azArg[i], 0);
+   }
+@@ -3888,11 +3890,11 @@
+   const char *zType;
+   const char *zSql;
+   ShellState *p = (ShellState *)pArg;
+ 
+   UNUSED_PARAMETER(azNotUsed);
+-  if( nArg!=3 ) return 1;
++  if( nArg!=3 || azArg==0 ) return 0;
+   zTable = azArg[0];
+   zType = azArg[1];
+   zSql = azArg[2];
+ 
+   if( strcmp(zTable, "sqlite_sequence")==0 ){
+
package/sqlite/0002-CVE-2017-15286.patch new file +28 -0
new file mode 100644
index 000000000000..681e9d06047d
@@ -0,0 +1,28 @@
+Fix CVE-2017-15286
+
+SQLite 3.20.1 has a NULL pointer dereference in tableColumnList in shell.c 
+because it fails to consider certain cases where 
+`sqlite3_step(pStmt)==SQLITE_ROW` is false and a data structure is never 
+initialized.
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=878680
+
+Upstream commit: http://www.sqlite.org/src/info/5d0ceb8dcdef92cd
+
+Index: src/shell.c
+==================================================================
+--- src/shell.c
++++ src/shell.c
+@@ -3807,10 +3807,11 @@
+         isIPK = 0;
+       }
+     }
+   }
+   sqlite3_finalize(pStmt);
++  if( azCol==0 ) return 0;
+   azCol[0] = 0;
+   azCol[nCol+1] = 0;
+ 
+   /* The decision of whether or not a rowid really needs to be preserved
+   ** is tricky.  We never need to preserve a rowid for a WITHOUT ROWID table
+
Signature · 1 line
2.14.2
#1 lore raw

PATCH 1/1 sqlite: add security patches

Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Baruch" == Baruch Siach <[email protected]> writes:

CVE-2017-13685: The dump_callback function in SQLite 3.20.0 allows remote attackers to cause a denial of service (EXC_BAD_ACCESS and application crash) via a crafted file.

CVE-2017-15286: SQLite 3.20.1 has a NULL pointer dereference in tableColumnList in shell.c
because it fails to consider certain cases where sqlite3_step(pStmt)==SQLITE_ROW is false and a data structure is never initialized.

Do you know if this also applies to 2017.08.x (3.19.3) or 2017.02.x (3.16.2)?

Signature · 1 line
Bye, Peter Korsgaard
#2 lore raw

PATCH 1/1 sqlite: add security patches

Hi Peter,

Quoted 6 lines · Peter Korsgaard
Quoted 5 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Baruch" == Baruch Siach <[email protected]> writes:

CVE-2017-13685: The dump_callback function in SQLite 3.20.0 allows remote attackers to cause a denial of service (EXC_BAD_ACCESS and application crash) via a crafted file.

Quoted 8 lines
Quoted 5 lines

CVE-2017-15286: SQLite 3.20.1 has a NULL pointer dereference in tableColumnList in shell.c
because it fails to consider certain cases where sqlite3_step(pStmt)==SQLITE_ROW is false and a data structure is never initialized.

Do you know if this also applies to 2017.08.x (3.19.3) or 2017.02.x (3.16.2)?

According to the Debian CVE-2017-13685 tracker page[1] versions as old as 3.7.13 are affected.

The CVE-2017-15286 page[2] indicates that 3.16.2 is not affected. Not sure about 3.19.3.

[1] https://security-tracker.debian.org/tracker/CVE-2017-13685

[2] https://security-tracker.debian.org/tracker/CVE-2017-15286

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#3 lore raw

PATCH 1/1 sqlite: add security patches

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Baruch" == Baruch Siach <[email protected]> writes:

Hi,

Quoted 6 lines
Quoted 2 lines

Do you know if this also applies to 2017.08.x (3.19.3) or 2017.02.x (3.16.2)?

According to the Debian CVE-2017-13685 tracker page[1] versions as old as 3.7.13 are affected.

Quoted 6 lines

The CVE-2017-15286 page[2] indicates that 3.16.2 is not affected. Not sure about 3.19.3.

[1] https://security-tracker.debian.org/tracker/CVE-2017-13685

[2] https://security-tracker.debian.org/tracker/CVE-2017-15286

Ok, thanks!

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw

PATCH 1/1 sqlite: add security patches

In reply to Baruch Siach
Quoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Baruch" == Baruch Siach <[email protected]> writes:

CVE-2017-13685: The dump_callback function in SQLite 3.20.0 allows remote attackers to cause a denial of service (EXC_BAD_ACCESS and application crash) via a crafted file.

Quoted 7 lines

CVE-2017-15286: SQLite 3.20.1 has a NULL pointer dereference in tableColumnList in shell.c
because it fails to consider certain cases where sqlite3_step(pStmt)==SQLITE_ROW is false and a data structure is never initialized.

Committed to 2017.08.x, thanks.

Signature · 1 line
Bye, Peter Korsgaard