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.4
Вийшов Ruby 4.0.4.
Опублікував k0kubun 11-05-2026
Вийшов Ruby 4.0.3
Вийшов Ruby 4.0.3.
Опублікував k0kubun 21-04-2026
Вийшов Ruby 3.2.11
Вийшов Ruby 3.2.11. Цей реліз містить оновлення gem zlib, яке усуває CVE-2026-27820.
Опублікував hsbt 27-03-2026
Вийшов Ruby 3.3.11
Вийшов Ruby 3.3.11. Цей реліз містить оновлення gem zlib, яке усуває CVE-2026-27820, а також кілька виправлень помилок.
Опублікував hsbt 26-03-2026