Зараз читаютьПрактичні новини про код, AI та технології — без інформаційного шуму
Розробка4 хв читання

uv 0.12.9 закрив витоки секретів у редіректах і ризик читання wheel-метаданих

Менеджер Python-пакетів прибирає sensitive headers між різними realms, редагує secrets у signed URLs і оновлює range reader через потенційну проблему memory safety.

uv 0.12.9 закрив витоки секретів у редіректах і ризик читання wheel-метаданих

uv 0.12.9 зосередився на межі між продуктивністю пакетного менеджера й безпекою даних, отриманих із мережі. Реліз прибирає конфіденційні заголовки під час редіректів між різними authentication realms, маскує секрети із signed URLs у повторних помилках та оновлює компонент читання діапазонів через потенційну проблему memory safety при роботі з недовіреними wheel-метаданими.

Редакційна ілюстрація захищеного читання пакетів, очищення секретів і повторного використання буферів
Редакційна AI-ілюстрація до огляду uv 0.12.9; вона не входить до першоджерела й не використовує логотипи Python або uv.

Заголовки більше не переходять у чужий контекст

HTTP-редірект може виглядати невинно: сервер відповідає новою адресою, а клієнт повторює запит. Проблема виникає, якщо разом із ним переносяться authentication headers. У 0.12.9 uv видаляє sensitive headers, коли редірект переходить до іншого realm. Перевірка охоплює і випадок на тому самому hostname, якщо змінюється схема URL.

Для приватних package indexes, object storage і проксі це важлива межа довіри. Однакова назва хоста не гарантує однакового рівня захисту між HTTPS та HTTP або різними шляхами автентифікації. Після оновлення деякі нестандартні ланцюжки можуть вимагати явної повторної авторизації — це безпечніша поведінка, а не причина повертати старе перенесення токена.

Signed URLs більше не повинні з’являтися в діагностиці

Підписана URL часто містить query-параметр, який фактично працює як тимчасовий credential. Навіть якщо основна помилка його маскувала, вкладений exception під час retry міг повторно показати повну адресу. Реліз розширює редагування на retry diagnostics і nested request errors.

Це знижує ризик появи секретів у CI output, логах runner, support tickets та системах збору помилок. Водночас оновлення не очищає історичні дані. Командам, які використовують signed artifact URLs, варто окремо перевірити старі логи, налаштувати короткий TTL і відкликати активні посилання, якщо вони вже потрапили до сторонньої системи.

Потенційна memory-safety проблема в range reader

uv оновив async_http_range_reader до 0.11.1. Причина в release notes сформульована обережно: потенційна проблема безпеки пам’яті під час читання metadata ranges із недовірених wheels. Range reader потрібний, щоб отримувати лише частини віддаленого архіву, не завантажуючи весь файл до початку аналізу.

Це не оголошення окремого CVE і не доказ віддаленого виконання коду. Проте packages є зовнішнім входом, тому інсталяції з публічних або сторонніх індексів мають оновлювати сам пакетний менеджер так само дисципліновано, як build dependencies. Особливо це стосується CI, який обробляє pull requests із недовіреними змінами requirements.

Швидші холодні інсталяції

Під час cold install кожний streaming ZIP archive тепер розпаковується в межах одного blocking task, а buffers повторно використовуються між файлами. Це зменшує накладні витрати на перемикання задач і виділення пам’яті. Окреме виправлення не дозволяє кільком процесам uv паралельно розпаковувати той самий локальний або зібраний із source wheel.

Практичний виграш залежить від швидкості диска, розміру wheels, кешу та кількості одночасних jobs. Не варто переносити чужі бенчмарки на свій monorepo: заміряйте clean install та паралельні CI-запуски до і після оновлення.

Керування locked і frozen режимами

Додано --no-locked і --no-frozen, які дозволяють на один запуск скасувати режими, увімкнені через UV_LOCKED або UV_FROZEN. Помилки тепер точніше називають прапорець, що активував обмеження, а command-line параметри --locked, --frozen, --check і --check-exists мають передбачуваний пріоритет над конфліктними environment values.

Це корисно в базових CI images, де строгий режим заданий глобально, але окремій діагностичній команді потрібно дозволити зміну lockfile. Виняток має залишатися явним у job-конфігурації, щоб не перетворити контроль відтворюваності на випадкову опцію.

Практичний висновок: оновіть uv насамперед у CI та середовищах із приватними індексами, редіректами й signed URLs. Після цього перевірте, чи не покладалася ваша мережа на перенесення credentials через межу довіри.

Обмеження

Release notes не стверджують, що всі можливі витоки URL або заголовків у сторонніх wrappers закриті. Логи shell, proxy, package registry та observability agent мають власні правила редагування. Так само прискорення extraction не усуває network latency і не робить ненадійний кеш коректним.

Джерело та ліцензія

Матеріал підготовлено за release notes uv 0.12.9. Репозиторій uv має подвійну ліцензію MIT або Apache-2.0. Український текст самостійно перекладено й адаптовано редакцією без копіювання інсталяційних команд і таблиці артефактів.

Першоджерело:uv ↗
Автор:Astral contributors

Матеріал перекладено, переказано та доповнено редакцією українською мовою.

</>

Читайте далі — ми вже розбираємо наступну важливу тему.

Далі за темою

Схожі матеріали