Thread: BUG #18614: [ECPG] out of bound in DecodeDateTime

BUG #18614: [ECPG] out of bound in DecodeDateTime

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      18614
Logged by:          Pavel Nekrasov
Email address:      p.nekrasov@fobos-nt.ru
PostgreSQL version: 17rc1
Operating system:   Alt 10
Description:

in the line ```if (tm->tm_mday < 1 || tm->tm_mday >
day_tab[isleap(tm->tm_year)][tm->tm_mon - 1]) ``` tm->tm_mon may be equal to
0, which will result in reading by indexes -1

this is possible when calling PGTYPESdate_from_asc or
PGTYPEStimestamp_from_asc with "str" equal, for example, "AM95000062"

Patch:

--- a/src/interfaces/ecpg/pgtypeslib/dt_common.c
+++ b/src/interfaces/ecpg/pgtypeslib/dt_common.c
@@ -2327,10 +2327,9 @@ DecodeDateTime(char **field, int *ftype, int nf,
             return ((fmask & DTK_TIME_M) == DTK_TIME_M) ? 1 : -1;
 
         /*
-         * check for valid day of month, now that we know for sure the month
-         * and year...
+         * check for valid day of month and month, now that we know for sure the
year...
          */
-        if (tm->tm_mday < 1 || tm->tm_mday >
day_tab[isleap(tm->tm_year)][tm->tm_mon - 1])
+        if (tm->tm_mon < 1 || tm->tm_mday < 1 || tm->tm_mday >
day_tab[isleap(tm->tm_year)][tm->tm_mon - 1])
             return -1;
 
         /*


Re: BUG #18614: [ECPG] out of bound in DecodeDateTime

From
Павел Некрасов
Date:
Hello,

I would like to clarify two points:

1. Are there any known examples of large open-source projects that actively use the ecpg?

2. Do you think it would be appropriate to assign a CVE for this bug?

Best regards,  
Pavel Nekrasov  
Fobos-NT



Re: BUG #18614: [ECPG] out of bound in DecodeDateTime

From
Павел Некрасов
Date:
Thank you for the clarification!

Would it be possible to know which specific organizations or projects actively use ecpg?

Best regards,
Pavel Nekrasov
Fobos-NT



Re: BUG #18614: [ECPG] out of bound in DecodeDateTime

From
Matthias Apitz
Date:
El día viernes, octubre 25, 2024 a las 09:23:17 +0300, Павел Некрасов escribió:

> Thank you for the clarification!
> 
> Would it be possible to know which specific organizations or projects actively use ecpg?
> 
> Best regards,
> Pavel Nekrasov
> Fobos-NT

Our software, a complete Library Management System, uses ECPG from C and
C++ written servers on Linux.

    matthias

-- 
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub

Annalena Baerbock: "We are fighting a war against Russia ..." (25.1.2023)

I, Matthias, I am not at war with Russia.
Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.



Re: BUG #18614: [ECPG] out of bound in DecodeDateTime

From
Alvaro Herrera
Date:
On 2024-Oct-25, Павел Некрасов wrote:

> Thank you for the clarification!
> 
> Would it be possible to know which specific organizations or projects
> actively use ecpg?

It doesn't seem realistic to maintain a complete list, and many
organizations are just not going to tell us or anyone that they're using
it.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"This is a foot just waiting to be shot"                (Andrew Dunstan)