Thread: BUG #2052: Federal Agency Tech Hub Refuses to Accept Postgresql on Network because of Security Vulnerabilities
BUG #2052: Federal Agency Tech Hub Refuses to Accept Postgresql on Network because of Security Vulnerabilities
From
"Ferindo Middleton"
Date:
The following bug has been logged online: Bug reference: 2052 Logged by: Ferindo Middleton Email address: fmiddleton@verizon.net PostgreSQL version: 8.0.4 Operating system: Windows 2000 Description: Federal Agency Tech Hub Refuses to Accept Postgresql on Network because of Security Vulnerabilities Details: This bug report involves more than one proposed bug. I work at a federal government agency. The information technology division at this agency refuses to allow the database version 8.0.4 on their network because of several security vulnerabilities they noticed when testing the software application. The database would run on a Windows 2000 Professional computer system. The division I work for wants to use the database as a backend to a set Java Server Pages I developed to be served via Apache Tomcat. My application works great with PostgreSQL but the problem is getting the IS team at this agency to accept PostgreSQL db. I know nothing about hacking PostgreSQL. I am merely know how to install, setup, run the database and write JSP applications to us the database in the background so these security vulnerabilities are beyond the scope of my own understanding of the database from a mere admin/user level. I am going to paste below the feedback I received concerning the vulnerabilities of the database in hopes that The PostgreSQL Global Development Group would consider looking into each stated flaw. I believe that resolution of these vulnerabilities would be a major achievement of our database management system and possibly open the software up to more government acceptance and utilization, which I believe it is lacking. Here are the vulnerabilities that were stated (each one has a special Common Vulnerabilities and Exposures (CVE)codes that this IS team had assigned): CVE-2005-0245 Buffer overflow in gram.y for PostgreSQL 8.0.0 and earlier may allow attackers to execute arbitrary code via a large number of arguments to a refcursor function (gram.y), which leads to a heap-based buffer overflow, a different vulnerability than CVE-2005-0247. CVE-2005-0244 PostgreSQL 8.0.0 and earlier allows local users to bypass the EXECUTE permission check for functions by using the CREATE AGGREGATE command. CVE-2005-0227 PostgreSQL (pgsql) 7.4.x, 7.2.x, and other versions allows local users to load arbitrary shared libraries and execute code via the LOAD extension. CVE-2005-0246 The intagg contrib module for PostgreSQL 8.0.0 and earlier allows attackers to cause a denial of service (crash) via crafted arrays. CVE-2005-0247 Multiple buffer overflows in gram.y for PostgreSQL 8.0.1 and earlier may allow attackers to execute arbitrary code via (1) a large number of variables in a SQL statement being handled by the read_sql_construct function, (2) a large number of INTO variables in a SELECT statement being handled by the make_select_stmt function, (3) alarge number of arbitrary variables in a SELECT statement being handled by the make_select_stmt function, and (4) a large number of INTO variables in a FETCH statement being handled by the make_fetch_stmt function, a different set of vulnerabilities than CVE-2005-0245. CVE-2005-1409 PostgreSQL 7.3.x through 8.0.x gives public EXECUTE access to certain character conversion functions, which allows unprivileged users to call those functions with malicious values, with unknown impact, aka the "Character conversion vulnerability CVE-2005-1410 - The tsearch2 module in PostgreSQL 7.4 through 8.0.x declares the (1) dex_init, (2) snb_en_init, (3) snb_ru_init, (4)spell_init, and (5) syn_init functions as "internal" even when they do not take an internal argument, which allows attackers to cause a denial of service (application crash) and possibly have other impacts via SQL commands that call other functions that accept internal arguments. Ferindo
Re: BUG #2052: Federal Agency Tech Hub Refuses to Accept Postgresql on Network because of Security Vulnerabilities
From
Tom Lane
Date:
"Ferindo Middleton" <fmiddleton@verizon.net> writes: > This bug report involves more than one proposed bug. I work at a federal > government agency. The information technology division at this agency > refuses to allow the database version 8.0.4 on their network because of > several security vulnerabilities they noticed when testing the software > application. They obviously haven't "tested" anything --- they are merely reading the CVE reports for old Postgres versions. All known CVE problems are resolved in 8.0.4. (If they were actually serious about security, they wouldn't be letting you run Windows 2000 inside their network, but I digress.) regards, tom lane
Re: BUG #2052: Federal Agency Tech Hub Refuses to Accept Postgresql on Network because of Security Vulnerabilities
From
Stephen Frost
Date:
* Ferindo Middleton (fmiddleton@verizon.net) wrote: > CVE-2005-0245 Buffer overflow in gram.y for PostgreSQL 8.0.0 and earlier > may allow attackers to execute arbitrary code via a large number of > arguments to a refcursor function (gram.y), which leads to a > heap-based buffer overflow, a different vulnerability than CVE-2005-0247.= =20=20 I think this was fixed in 8.0.2... > CVE-2005-0244 PostgreSQL 8.0.0 and earlier allows local users to bypass = the > EXECUTE permission check for functions by using the CREATE AGGREGATE > command.=20=20 This appears to have been fixed in 8.0.1. > CVE-2005-0227 PostgreSQL (pgsql) 7.4.x, 7.2.x, and other versions allows > local users to load arbitrary shared libraries and execute code via the L= OAD > extension.=20=20 The CVE says it only affected pre-8.0 releases and I'm inclined to believe it. > CVE-2005-0246 The intagg contrib module for PostgreSQL 8.0.0 and earlier > allows attackers to cause a denial of service (crash) via crafted arrays.= =20 Contrib modules are only an issue if you install them. If you don't need them, don't install them. Don't know if this was fixed but honestly I expect it was, the Postgres folks don't just sit around on their hands when CVE's come out. > CVE-2005-0247 Multiple buffer overflows in gram.y for PostgreSQL 8.0.1 a= nd > earlier may allow attackers to execute arbitrary code via (1) a large num= ber > of variables in a SQL statement being handled by the read_sql_construct > function, (2) a large number of INTO variables in a SELECT statement being > handled by the make_select_stmt function, (3) alarge number of arbitrary > variables in a SELECT statement being handled > by the make_select_stmt function, and (4) a large number of INTO variables > in a FETCH statement being handled by the make_fetch_stmt function, a > different set of vulnerabilities than CVE-2005-0245.=20=20 Looks like this was fixed in 8.0.2.. > CVE-2005-1409 PostgreSQL 7.3.x through 8.0.x gives public EXECUTE access= to > certain character conversion functions, which allows unprivileged users to > call those functions with malicious values, with > unknown impact, aka the "Character conversion vulnerability=20 This appears to have been fixed in 8.0.3. > CVE-2005-1410 - The tsearch2 module in PostgreSQL 7.4 through 8.0.x decla= res > the (1) dex_init, (2) snb_en_init, (3) snb_ru_init, (4)spell_init, and (5) > syn_init functions as "internal" even when they do > not take an internal argument, which allows attackers to cause a denial of > service (application crash) and possibly have other impacts via SQL comma= nds > that call other functions that accept internal arguments. This appears to have been fixed in 8.0.3. It looks like these were all fixed rather quickly after they were discovered and brought to the attention of the PostgreSQL team. http://www.gsa.gov/networx -> Networx Hosting Center -> NHC User Instructions, Executive Summary. No software is without bugs. It would be foolish to assume that you can deploy a system once and never have to update it for newly discovered security vulnerabilities. If you'd like a comparison to a product they may be allowing elsewhere you might consider looking at Oracle's track record for fixing security issues. It's rather... poor. There have been a number of articles to this affect on bugtraq recently, you shouldn't have too much trouble finding good examples. Enjoy, Stephen
Re: BUG #2052: Federal Agency Tech Hub Refuses to Accept Postgresql on Network because of Security Vulnerabilities
From
"Magnus Hagander"
Date:
> Bug reference: 2052 > Logged by: Ferindo Middleton > Email address: fmiddleton@verizon.net > PostgreSQL version: 8.0.4 > Operating system: Windows 2000 > Description: Federal Agency Tech Hub Refuses to Accept=20 > Postgresql on > Network because of Security Vulnerabilities > Details:=20 >=20 > This bug report involves more than one proposed bug. I work=20 > at a federal government agency. The information technology=20 > division at this agency refuses to allow the database version=20 > 8.0.4 on their network because of several security=20 > vulnerabilities they noticed when testing the software=20 > application. The database would run on a Windows 2000=20 > Professional computer system. The division I work for wants=20 > to use the database as a backend to a set Java Server Pages I=20 > developed to be served via Apache Tomcat. My application=20 > works great with PostgreSQL but the problem is getting the IS=20 > team at this agency to accept PostgreSQL db. I know nothing=20 > about hacking PostgreSQL. I am merely know how to install,=20 > setup, run the database and write JSP applications to us the=20 > database in the background so these security vulnerabilities=20 > are beyond the scope of my own understanding of the database=20 > from a mere admin/user level.=20 >=20 > I am going to paste below the feedback I received concerning=20 > the vulnerabilities of the database in hopes that The=20 > PostgreSQL Global Development Group would consider looking=20 > into each stated flaw. I believe that resolution of these=20 > vulnerabilities would be a major achievement of our database=20 > management system and possibly open the software up to more=20 > government acceptance and utilization, which I believe it is lacking.=20 I beleive every single one of these bugs is fixed in the currently available releases.=20 So if you get 8.0.4 or 8.1.0, you're fine for any of these. (Oh, and what *do* they allow? Oracle, for example, has had a *lot* more security vulnerabilities during the same time, some of which aren't even patched yet.. And they can't seriously have a zero-bugs-even-if-fixed policy, because then they couldn't install *anything*...) //Magnus
Tom Lane wrote: > "Ferindo Middleton" <fmiddleton@verizon.net> writes: >=20=20=20 >> This bug report involves more than one proposed bug. I work at a federal >> government agency. The information technology division at this agency >> refuses to allow the database version 8.0.4 on their network because of >> several security vulnerabilities they noticed when testing the software >> application. >>=20=20=20=20=20 > > They obviously haven't "tested" anything --- they are merely reading the > CVE reports for old Postgres versions. All known CVE problems are > resolved in 8.0.4. > > (If they were actually serious about security, they wouldn't be letting > you run Windows 2000 inside their network, but I digress.) > > regards, tom lane > >=20=20=20 Thanks for your support with this. I had presented the IT support team=20 at this agency with the information you all provided that these=20 CVEs/bugs were resolved in previous versions to 8.0.4 and they suddenly=20 argued that it wasn=92t the CVE=92s that were the problem (without admittin= g=20 that they never really tested 8.0.4 in the first place)=85 I=92m sorry if I= =20 wasted anybody=92s time or irritated anyone by assuming that these bugs=20 were actually valid in 8.0.4=85 I=92m starting to get tied up in a bunch of= =20 bureaucratic tape dealing with these people. I think their just scared=20 of having to deal with the support overhead they think they'll have to=20 assume if they introduce another DBMS on their network=85 Thank you, Ferindo Middleton
On Fri, 2005-11-18 at 09:32 -0500, Tom Lane wrote: > All known CVE problems are resolved in 8.0.4. I was unaware of this. I've looked at the release notes and searched the archives, but this doesn't seem to be mentioned by CVE number. (The vulnerabilities and their resolutions are described, just without direct cross reference to their CVE number.) Do we have an on-project description of this? If we-as-a-project know this, it seems straightforward to write it down. It seems like we need a much clearer resource for security admins to check our compliance levels. This could be a source of similar refusal-to-implement PostgreSQL at other installations, so could almost be regarded as an advocacy issue. Other software projects have been criticized badly for their security response and info dissemination - I don't believe that applies here, but it does indicate the general requirement and its priority. i.e. don't just fix the bugs, tell everyone you've fixed the bugs. Or, at very least, put stronger security warnings onto the releases. (My own advice is always to watch for announcements and stay current). Thoughts? Best Regards, Simon Riggs Stephen's detailed reply to CVE worries copied below for context: On Fri, 2005-11-18 at 10:08 -0500, Stephen Frost wrote: > * Ferindo Middleton (fmiddleton@verizon.net) wrote: > > CVE-2005-0245 Buffer overflow in gram.y for PostgreSQL 8.0.0 and earlier > > may allow attackers to execute arbitrary code via a large number of > > arguments to a refcursor function (gram.y), which leads to a > > heap-based buffer overflow, a different vulnerability than CVE-2005-0247. > > I think this was fixed in 8.0.2... > > > CVE-2005-0244 PostgreSQL 8.0.0 and earlier allows local users to bypass the > > EXECUTE permission check for functions by using the CREATE AGGREGATE > > command. > > This appears to have been fixed in 8.0.1. > > > CVE-2005-0227 PostgreSQL (pgsql) 7.4.x, 7.2.x, and other versions allows > > local users to load arbitrary shared libraries and execute code via the LOAD > > extension. > > The CVE says it only affected pre-8.0 releases and I'm inclined to > believe it. > > > CVE-2005-0246 The intagg contrib module for PostgreSQL 8.0.0 and earlier > > allows attackers to cause a denial of service (crash) via crafted arrays. > > Contrib modules are only an issue if you install them. If you don't > need them, don't install them. Don't know if this was fixed but > honestly I expect it was, the Postgres folks don't just sit around on > their hands when CVE's come out. > > > CVE-2005-0247 Multiple buffer overflows in gram.y for PostgreSQL 8.0.1 and > > earlier may allow attackers to execute arbitrary code via (1) a large number > > of variables in a SQL statement being handled by the read_sql_construct > > function, (2) a large number of INTO variables in a SELECT statement being > > handled by the make_select_stmt function, (3) alarge number of arbitrary > > variables in a SELECT statement being handled > > by the make_select_stmt function, and (4) a large number of INTO variables > > in a FETCH statement being handled by the make_fetch_stmt function, a > > different set of vulnerabilities than CVE-2005-0245. > > Looks like this was fixed in 8.0.2.. > > > CVE-2005-1409 PostgreSQL 7.3.x through 8.0.x gives public EXECUTE access to > > certain character conversion functions, which allows unprivileged users to > > call those functions with malicious values, with > > unknown impact, aka the "Character conversion vulnerability > > This appears to have been fixed in 8.0.3. > > > CVE-2005-1410 - The tsearch2 module in PostgreSQL 7.4 through 8.0.x declares > > the (1) dex_init, (2) snb_en_init, (3) snb_ru_init, (4)spell_init, and (5) > > syn_init functions as "internal" even when they do > > not take an internal argument, which allows attackers to cause a denial of > > service (application crash) and possibly have other impacts via SQL commands > > that call other functions that accept internal arguments. > > This appears to have been fixed in 8.0.3. > > It looks like these were all fixed rather quickly after they were > discovered and brought to the attention of the PostgreSQL team. > http://www.gsa.gov/networx -> Networx Hosting Center -> NHC User > Instructions, Executive Summary. > > No software is without bugs. It would be foolish to assume that you can > deploy a system once and never have to update it for newly discovered > security vulnerabilities. If you'd like a comparison to a product > they may be allowing elsewhere you might consider looking at Oracle's > track record for fixing security issues. It's rather... poor. There > have been a number of articles to this affect on bugtraq recently, you > shouldn't have too much trouble finding good examples. > > Enjoy, > > Stephen
Simon Riggs wrote: > On Fri, 2005-11-18 at 09:32 -0500, Tom Lane wrote: > > All known CVE problems are resolved in 8.0.4. > > I was unaware of this. I've looked at the release notes and searched the > archives, but this doesn't seem to be mentioned by CVE number. (The > vulnerabilities and their resolutions are described, just without direct > cross reference to their CVE number.) > > Do we have an on-project description of this? If we-as-a-project know > this, it seems straightforward to write it down. > > It seems like we need a much clearer resource for security admins to > check our compliance levels. This could be a source of similar > refusal-to-implement PostgreSQL at other installations, so could almost > be regarded as an advocacy issue. Other software projects have been > criticized badly for their security response and info dissemination - I > don't believe that applies here, but it does indicate the general > requirement and its priority. i.e. don't just fix the bugs, tell > everyone you've fixed the bugs. > > Or, at very least, put stronger security warnings onto the releases. (My > own advice is always to watch for announcements and stay current). Well, as the original poster mentioned, they were looking for a reason _not_ to use PostgreSQL, and if that is the goal, you can find a reason, error numbers or not. I am not excited about referencing error numbers from someone else. We know our errors better than anyone else, so I don't see the point. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian wrote: > I am not excited about referencing error numbers from someone else. > We know our errors better than anyone else, so I don't see the point. The point is, *we* might know our error numbers, but the rest of the world doesn't. And CVE isn't just "someone". A large number of security groups, government agencies, and OS distributors are involved there. Using CVE numbers, the public can, say, correlate bugtraq or CERT announcements or Red Hat or Debian bugs to PostgreSQL patches and releases. Copy-and-pasting the CVE number into the patch message or release note entry really isn't that much to ask for that service. -- Peter Eisentraut http://developer.postgresql.org/~petere/
On Fri, 2005-11-25 at 12:20 -0500, Bruce Momjian wrote: > Simon Riggs wrote: > > On Fri, 2005-11-18 at 09:32 -0500, Tom Lane wrote: > > > All known CVE problems are resolved in 8.0.4. > > > > It seems like we need a much clearer resource for security admins to > > check our compliance levels. This could be a source of similar > > refusal-to-implement PostgreSQL at other installations, so could almost > > be regarded as an advocacy issue. Other software projects have been > > criticized badly for their security response and info dissemination - I > > don't believe that applies here, but it does indicate the general > > requirement and its priority. i.e. don't just fix the bugs, tell > > everyone you've fixed the bugs. > Well, as the original poster mentioned, they were looking for a reason > _not_ to use PostgreSQL, and if that is the goal, you can find a reason, > error numbers or not. I think that's true, but it should be our goal to remove all excuses so that people have to face up to the real issues. I see this as advocacy in many ways. > I am not excited about referencing error numbers from someone else. We > know our errors better than anyone else, so I don't see the point. I think if you don't want to put those on the release notes, thats fine; we know you're busy. Others have spoken in favour of a web page, separate from the release notes, and as Tom points out its easier to do it that way retrospectively anyway. *We* do know our errors, but thats not the point. CVE is becoming an accepted standard for referring to security exposures and we should follow this trend. http://www.cve.mitre.org/about/introduction.html CVE isn't just somebody else's bugtrack numbers, they're big. Debian, Gentoo, RedHat, IBM, CA etc already do this. Unless somebody else wants to do this, I'll discuss on -www how we can get a page up on the .org site with this info on, so that we can be "CVE compatible". Best Regards, Simon Riggs
Simon Riggs <simon@2ndquadrant.com> writes: > Unless somebody else wants to do this, I'll discuss on -www how we can > get a page up on the .org site with this info on, so that we can be "CVE > compatible". IMHO we should do that in any case, whether or not we mention CVEs in our release notes or CVS logs in the future. So go for it... regards, tom lane
If someone wants to create a separate web page to track fixes related to CVE number, that is fine. My guess is that most people reading the release notes don't care about the CVE numbers themselves (just that each release has all known security bugs fixed), and most bugs that are fixed don't have CVE numbers at commit time. --------------------------------------------------------------------------- Peter Eisentraut wrote: > Bruce Momjian wrote: > > I am not excited about referencing error numbers from someone else. > > We know our errors better than anyone else, so I don't see the point. > > The point is, *we* might know our error numbers, but the rest of the > world doesn't. > > And CVE isn't just "someone". A large number of security groups, > government agencies, and OS distributors are involved there. Using CVE > numbers, the public can, say, correlate bugtraq or CERT announcements > or Red Hat or Debian bugs to PostgreSQL patches and releases. > Copy-and-pasting the CVE number into the patch message or release note > entry really isn't that much to ask for that service. > > -- > Peter Eisentraut > http://developer.postgresql.org/~petere/ > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian wrote: > If someone wants to create a separate web page to track fixes related to > CVE number, that is fine. My guess is that most people reading the > release notes don't care about the CVE numbers themselves (just that > each release has all known security bugs fixed), and most bugs that are > fixed don't have CVE numbers at commit time. I think its quite reasonable for the one line description of a postgres bug to reference "CVE-2005-0247 multiple buffer overflows..." or whatever, I guess it kind of depends on which came first... if the CVE security item came first, and was entered into the PGSQL bug tracker, then this makes a LOT of sense. if the CVE folks create their entry AFTER the bug has been entered into PGSQL, it makes less sense.
John R Pierce wrote: > Bruce Momjian wrote: > > If someone wants to create a separate web page to track fixes related to > > CVE number, that is fine. My guess is that most people reading the > > release notes don't care about the CVE numbers themselves (just that > > each release has all known security bugs fixed), and most bugs that are > > fixed don't have CVE numbers at commit time. > > I think its quite reasonable for the one line description of a postgres > bug to reference "CVE-2005-0247 multiple buffer overflows..." or > whatever, I guess it kind of depends on which came first... if the CVE > security item came first, and was entered into the PGSQL bug tracker, > then this makes a LOT of sense. if the CVE folks create their entry > AFTER the bug has been entered into PGSQL, it makes less sense. We don't have a bug tracker, see the current FAQ. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073