CVE-2018-16396: Прапорці tainted не поширюються в Array#pack та String#unpack з деякими директивами

Опублікував usa 17-10-2018
Переклав: Andrii Furmanets

В Array#pack та String#unpack з деякими форматами, прапорці tainted оригінальних даних не поширюються до поверненого рядка/масиву. Цій вразливості присвоєно ідентифікатор CVE CVE-2018-16396.

Деталі

Метод Array#pack перетворює вміст отримувача в рядок з зазначеним форматом. Якщо отримувач містить деякі tainted об’єкти, повернений рядок також повинен бути tainted. Метод String#unpack, який перетворює отримувача в масив, також повинен поширювати його прапорець tainted до об’єктів, що містяться в поверненому масиві. Але, з директивами B, b, H, та h, прапорці tainted не поширюються. Тому, якщо скрипт обробляє ненадійні входи через Array#pack та/або String#unpack з цими директивами та перевіряє надійність з прапорцями tainted, перевірка може бути неправильною.

Всі користувачі, які запускають зачеплений випуск, повинні оновитися негайно.

Зачеплені версії

  • Серія Ruby 2.3: 2.3.7 та раніше
  • Серія Ruby 2.4: 2.4.4 та раніше
  • Серія Ruby 2.5: 2.5.1 та раніше
  • Серія Ruby 2.6: 2.6.0-preview2 та раніше
  • до ревізії trunk r65125

Подяка

Дякуємо Chris Seaton за повідомлення про проблему.

Історія

  • Спочатку опубліковано 2018-10-17 14:00:00 (UTC)

Останні новини

Вийшов Ruby 4.0.0

Ми раді повідомити про випуск Ruby 4.0.0. Ruby 4.0 представляє “Ruby Box” та “ZJIT”, а також додає багато покращень.

Опублікував naruse 25-12-2025

Новий вигляд документації Ruby

Слідом за ре-дизайном ruby-lang.org, ми маємо більше новин, щоб відсвяткувати 30-річчя Ruby: docs.ruby-lang.org має повністю новий вигляд завдяки Aliki — новій темі за замовчуванням для...

Опублікував Stan Lo 23-12-2025

Більше новин...