pgsql: Prevent access to external files/URLs via contrib/xml2's xslt_pr

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Prevent access to external files/URLs via contrib/xml2's xslt_pr
Date: 2012-08-14 22:33:41
Message-ID: E1T1PgD-0003uD-Me@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Prevent access to external files/URLs via contrib/xml2's xslt_process().

libxslt offers the ability to read and write both files and URLs through
stylesheet commands, thus allowing unprivileged database users to both read
and write data with the privileges of the database server. Disable that
through proper use of libxslt's security options.

Also, remove xslt_process()'s ability to fetch documents and stylesheets
from external files/URLs. While this was a documented "feature", it was
long regarded as a terrible idea. The fix for CVE-2012-3489 broke that
capability, and rather than expend effort on trying to fix it, we're just
going to summarily remove it.

While the ability to write as well as read makes this security hole
considerably worse than CVE-2012-3489, the problem is mitigated by the fact
that xslt_process() is not available unless contrib/xml2 is installed,
and the longstanding warnings about security risks from that should have
discouraged prudent DBAs from installing it in security-exposed databases.

Reported and fixed by Peter Eisentraut.

Security: CVE-2012-3488

Branch
------
REL9_1_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/e76e25228600709a1b641341be39bef061a36116

Modified Files
--------------
contrib/xml2/expected/xml2.out | 15 +++++++
contrib/xml2/expected/xml2_1.out | 15 +++++++
contrib/xml2/sql/xml2.sql | 15 +++++++
contrib/xml2/xslt_proc.c | 79 ++++++++++++++++++++++++++++----------
doc/src/sgml/xml2.sgml | 8 ----
5 files changed, 103 insertions(+), 29 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2012-08-14 22:33:42 pgsql: Prevent access to external files/URLs via contrib/xml2's xslt_pr
Previous Message Peter Eisentraut 2012-08-14 20:44:21 pgsql: Translation updates