Bug 497367 - (CVE-2009-0663) CVE-2009-0663 perl-DBD-Pg: pg_getline buffer overflow
CVE-2009-0663 perl-DBD-Pg: pg_getline buffer overflow
Product: Security Response
Classification: Other
Component: vulnerability (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Red Hat Product Security
: Security
Depends On: 497999 498000 498001 833953
  Show dependency treegraph
Reported: 2009-04-23 11:15 EDT by Tomas Hoger
Modified: 2012-06-20 10:28 EDT (History)
9 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-05-26 13:23:02 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Patched Debian plans to use (5.46 KB, patch)
2009-04-24 07:20 EDT, Tomas Hoger
no flags Details | Diff

  None (edit)
Description Tomas Hoger 2009-04-23 11:15:35 EDT
A heap-based buffer overflow flaw was found in perl-DBD-Pg's pg_getline.  When pg_getline is used, pg_db_getline (in dbdimp.c) is called that gets buffer of size length (specified by pg_getline called) passed to it.  Data read from the DB server is stored in temporary buffer pointed to by tempbuf and later copied to the buffer passed to pg_db_getline as:

            strncpy(buffer, tempbuf, strlen(tempbuf)+1);
            buffer[strlen(tempbuf)] = '\0';

This incorrectly uses source length as copy size limit, not the destination length, allowing overflow of input buffer.

This problem should be fixed in DBD-Pg versions 2.x, where pg_db_getline completely ignores length argument of pg_getline, allocating buffer of the required size.
Comment 1 Tomas Hoger 2009-04-23 11:19:37 EDT
This issue does not affect perl-DBD-Pg versions shipped in Red Hat Enterprise Linux 2.1, 3, and 4.  Version 1.49 shipped in Red Hat Enterprise Linux 5, Red Hat Application Stack v1 and v2 is affected.

malloc checks further mitigate impact of this flaw, as detected corruption of the malloc structures causes termination of perl interpreter shortly after the overflow happened.
Comment 3 Tomas Hoger 2009-04-24 07:20:52 EDT
Created attachment 341145 [details]
Patched Debian plans to use

Addresses both this issue and bug #497503.
Comment 6 Tomas Hoger 2009-04-29 02:23:43 EDT
Public now via Debian DSA:
Comment 7 Vincent Danen 2009-05-01 12:48:06 EDT
Common Vulnerabilities and Exposures assigned an identifier CVE-2009-0663 to
the following vulnerability:

Name: CVE-2009-0663
URL: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0663
Assigned: 20090222
Reference: MISC: https://launchpad.net/bugs/cve/2009-0663
Reference: CONFIRM: http://security.debian.org/pool/updates/main/libd/libdbd-pg-perl/libdbd-pg-perl_1.49-2+etch1.diff.gz
Reference: DEBIAN:DSA-1780
Reference: URL: http://www.debian.org/security/2009/dsa-1780

Heap-based buffer overflow in the DBD::Pg (aka DBD-Pg or
libdbd-pg-perl) module 1.49 for Perl might allow context-dependent
attackers to execute arbitrary code via unspecified input to an
application that uses the getline and pg_getline functions to read
database rows.
Comment 9 errata-xmlrpc 2009-05-13 10:27:13 EDT
This issue has been addressed in following products:

  Red Hat Enterprise Linux 5

Via RHSA-2009:0479 https://rhn.redhat.com/errata/RHSA-2009-0479.html
Comment 10 errata-xmlrpc 2009-05-26 13:06:11 EDT
This issue has been addressed in following products:

  Red Hat Web Application Stack for RHEL 5

Via RHSA-2009:1067 https://rhn.redhat.com/errata/RHSA-2009-1067.html
Comment 11 Tomas Hoger 2009-05-26 13:23:02 EDT
Red Hat Application Stack v1 for Enterprise Linux AS (version 4) is now in the maintenance phase of its life cycle:


According to the published Errata Support Policy, only security issues with critical security impact are fixed in Red Hat Application Stack during the maintenance phase.  This issue was rated as having moderate security impact and therefore will not be fixed in Red Hat Application Stack v1.

Note You need to log in before you can comment on or make changes to this bug.