Docs: add disclaimer about hazards of using regexps from untrusted sources.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 2 Oct 2015 17:30:42 +0000 (13:30 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 2 Oct 2015 17:30:42 +0000 (13:30 -0400)
commit558d4ada1851274fe4dd3618f3f6561b63857e8f
treed49622a21b6fe739043706587ff49cda747deb24
parent27fddec197857db4d54db50a63f311bb0ed7b6fd
Docs: add disclaimer about hazards of using regexps from untrusted sources.

It's not terribly hard to devise regular expressions that take large
amounts of time and/or memory to process.  Recent testing by Greg Stark has
also shown that machines with small stack limits can be driven to stack
overflow by suitably crafted regexps.  While we intend to fix these things
as much as possible, it's probably impossible to eliminate slow-execution
cases altogether.  In any case we don't want to treat such things as
security issues.  The history of that code should already discourage
prudent DBAs from allowing execution of regexp patterns coming from
possibly-hostile sources, but it seems like a good idea to warn about the
hazard explicitly.

Currently, similar_escape() allows access to enough of the underlying
regexp behavior that the warning has to apply to SIMILAR TO as well.
We might be able to make it safer if we tightened things up to allow only
SQL-mandated capabilities in SIMILAR TO; but that would be a subtly
non-backwards-compatible change, so it requires discussion and probably
could not be back-patched.

Per discussion among pgsql-security list.
doc/src/sgml/func.sgml