Re: lower() and unaccent() not leakproof

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: lower() and unaccent() not leakproof
Дата
Msg-id c2fa3603-6eaf-7b5d-9c0e-591dd3a857cf@enterprisedb.com
обсуждение исходный текст
Ответ на Re: lower() and unaccent() not leakproof  (Daniel Gustafsson <daniel@yesql.se>)
Ответы Re: lower() and unaccent() not leakproof  (Daniel Gustafsson <daniel@yesql.se>)
Список pgsql-general
On 26.08.21 10:40, Daniel Gustafsson wrote:
>> On 26 Aug 2021, at 09:58, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:
>>
>> On 26.08.21 06:52, David G. Johnston wrote:
>>> On Wednesday, August 25, 2021, Christophe Pettus <xof@thebuild.com <mailto:xof@thebuild.com>> wrote:
>>>     lower() and unaccent() (and most string functions) are not marked as
>>>     leakproof.  Is this due to possible locale / character encoding
>>>     errors they might encounter?
>>> I think you are partially correct.  Its due to the fact that error messages, regardless of the root cause, result
inthe printing of the input value in the error message as context, thus exists a leak via a violation of “ It reveals
noinformation about its arguments other than by its return value. ”
 
>>
>> I think if you trace the code, you might find that lower() and upper() can't really leak anything.  It might be
worthtaking a careful look and possibly lifting this restriction.
 
> 
> Wouldn’t the difference in possible error messages in upper/lower be able to
> leak whether the input is ascii or wide chars, and/or the collation?

Yeah, but there aren't any error messages that relate to the argument 
string, if you look through the code.  There isn't any "could not find 
lower case equivalent of %s" or anything like that.  Once you have found 
the right collation and locale and server encoding and have allocated 
some memory, the conversion always succeeds.

The collation is not secret, it's determined by parse analysis.



В списке pgsql-general по дате отправления:

Предыдущее
От: hubert depesz lubaczewski
Дата:
Сообщение: Re: Can we get rid of repeated queries from pg_dump?
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: lower() and unaccent() not leakproof