PostgreSQL 17.5: читання за межами буфера при перевірці GB18030

2 хв читання

8 травня 2025 року вийшов PostgreSQL 17.5, у якому виправлено помилку читання за межами буфера при перевірці рядків у кодуванні GB18030. Неповний багатобайтовий символ у кінці пам'яті міг спричинити аварійне завершення роботи сервера або додатків, що використовують libpq.

Проблема, усунута 8 травня 2025 року, полягала в помилці читання за межами буфера під час перевірки некоректно закодованих рядків GB18030. Помилка виникала, коли неповний багатобайтовий символ з'являвся безпосередньо в кінці доступного сегмента пам'яті, що призводило до спроби доступу до невалідних адрес пам'яті як у самому сервері, так і в застосунках, що використовують бібліотеку libpq.

Рекомендації:

  • Оновіть екземпляри PostgreSQL до версії 17.5.
  • Оновіть клієнтські бібліотеки libpq на всіх застосунках, що підключаються до бази даних.
  • Проведіть тестування обробки рядків GB18030 у ваших застосунках після оновлення, щоб переконатися у відсутності регресій.

Забезпечення стабільності PostgreSQL при обробці кодування GB18030

Аварійні зупинки серверів баз даних через некоректну обробку даних можуть призвести до простоїв бізнес-процесів та втрати доступності сервісів. Для розробників та адміністраторів баз даних це означає, що навіть специфічні налаштування кодування можуть стати причиною критичних збоїв у роботі інфраструктури.

Практичний крок: Оновіть PostgreSQL до версії 17.5 та оновіть клієнтські бібліотеки libpq. Зверніться до Softline для проведення технічного аудиту вашої бази даних та планування оновлення інфраструктури, щоб забезпечити стабільну роботу застосунків та уникнути регресій.

Використані джерела

  1. postgresql.org (postgresql.org)