November 2019 Archives

Mon Nov 11 13:27:42 EET 2019

Minor security issue in punbb with SQLite


Minor security issue in punbb with SQLite

Georgi Guninski security advisory #76, 2019

Running punbb-master from https://github.com/punbb/punbb
from Thu 07 Nov 2019 11:23:33 AM UTC

Installing on http://host/forum
In install.php set:
 
database type: SQLite3
database name: database1

Accessing http://host/forum/database1 returns the full raw database,
including hashes and email addresses.

If attacker guesses the name "database1" or brute force from common
database names, this gives her read access of the raw database.

If you consider this a bug, as workaround set database to something
hard to guess.

Other forum software explicitly want the SQLite database to
be non-accessible from the web.

-- 
CV:    https://j.ludost.net/resumegg.pdf
site:  http://www.guninski.com
blog:  https://j.ludost.net/blog



Posted by joro | Permanent link

Fri Nov 8 14:20:38 EET 2019

Controversy and exploitability of gcc issue 30475 |assert(int+100 > int)|


Controversy and exploitability of gcc issue 30475 |assert(int+100 > int)|

There is heated discussion on gcc's bugzilla starting from 2007:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30475
and clang is also affected, depending on optimization flags.

poc is the program at end.

gcc with all optimization flags optimizes away |assert(a+100 > a)|
even if there is no integer overflow, only signed overflow.

clang fires the assertion with -O0, but also optimizes it away
with -O3

The formal verifier CBMC fires the assertion, which might of
interest about formally verified programs.

Signed integer arithmetic is commonly used even without integer
overflows. If |(int) -1 < (unsigned int) 2| holds, this would
be disaster.

Could this compiler issue be security problem?

Any workarounds?

===poc===
#include 

int foo(int a) {
  assert(a+100 > a);
  printf("%d %d\n",a+100,a);
  return a;
}

int main() {
  foo(100);
  foo(0x7fffffff);
}
=========


CV:    https://j.ludost.net/resumegg.pdf
site:  http://www.guninski.com
blog:  https://j.ludost.net/blog

Posted by gcc | Permanent link