pgsql: Fix handling of invalidly encoded data in escaping functions
От | Andres Freund |
---|---|
Тема | pgsql: Fix handling of invalidly encoded data in escaping functions |
Дата | |
Msg-id | E1thVPx-006Nyi-24@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix handling of invalidly encoded data in escaping functions Previously invalidly encoded input to various escaping functions could lead to the escaped string getting incorrectly parsed by psql. To be safe, escaping functions need to ensure that neither invalid nor incomplete multi-byte characters can be used to "escape" from being quoted. Functions which can report errors now return an error in more cases than before. Functions that cannot report errors now replace invalid input bytes with a byte sequence that cannot be used to escape the quotes and that is guaranteed to error out when a query is sent to the server. The following functions are fixed by this commit: - PQescapeLiteral() - PQescapeIdentifier() - PQescapeString() - PQescapeStringConn() - fmtId() - appendStringLiteral() Reported-by: Stephen Fewer <stephen_fewer@rapid7.com> Reviewed-by: Noah Misch <noah@leadboat.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Backpatch-through: 13 Security: CVE-2025-1094 Branch ------ REL_13_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/c906bfe1b87280ab5b94d5d84e7cd019a1ff09d3 Modified Files -------------- src/fe_utils/string_utils.c | 170 ++++++++++++++++++++++++++++++++--------- src/interfaces/libpq/fe-exec.c | 136 ++++++++++++++++++++++++--------- 2 files changed, 238 insertions(+), 68 deletions(-)
В списке pgsql-committers по дате отправления: