Оновлення приватної бета-версії UmbrellaX
Під час перевірки безпеки ми виявили серйозні проблеми в кількох бібліотеках з відкритим кодом, які використовуються для шифрування та безпечного зв’язку. Локальні виправлення готові, але вони ще потребують повної перевірки та незалежного перегляду. Я не випускаю бета-версію, доки не буду впевнений, що ці ризики усунені.
Ось повний список доступною мовою. Відкрийте розділ, щоб побачити, що може піти не так, повсякденний приклад і посилання на виправлення.
Розшифровані групові секрети можуть залишити додаткові копії в пам’яті чи діагностиці. Неправильний зашифрований текст, вітальні повідомлення, пропозиції, шляхи оновлення, відсутні локальні ключі, помилки випадкових чисел, незвичайний системний час і обмеження епохи можуть закрити програму замість повернення безпечної помилки. Деякі перевірки цілісності дерева та довжини шляху також не гарантувалися в кожному випуску.
Наприклад, несправне групове оновлення, отримане з мережі, має бути відхилено без закриття месенджера, пропуску перевірки цілісності або надання байтів повідомлення у звіті про збій.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: openmls 0.8.1 | UMB-117, UMB-118, UMB-120, UMB-121, UMB-125, UMB-128, UMB-129, UMB-130, UMB-131, UMB-132, UMB-133, UMB-134, UMB-135, UMB-136, UMB-137, UMB-138, UMB-139
Видалені або замінені записи MLS можуть залишити серіалізовані копії або приховані тіла пропозицій у пам’яті. Групові знімки потребували атомарної заміни з обмеженою областю, доступ до налагодження потребував редагування, а додатковий режим збереження зберігав читабельний закодований текст замість автентифікованих зашифрованих даних.
Наприклад, видалення групи має також видалити її приховані пропозиції, що очікують на розгляд, а параметр зберігання не повинен виглядати зашифрованим, коли він лише перетворює дані на читабельний текст.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: openmls_memory_storage 0.5.0 | UMB-119, UMB-212, UMB-213, UMB-214
Невикористаний необов’язковий бекенд усе ще перетягнув уразливий пакет у інвентар залежностей. Приватний матеріал HPKE також потребував більш ретельного редагування та очищення пам’яті.
Наприклад, серверна частина, яку ми не використовуємо, не повинна передавати відомий уразливий пакет у випуск, а роздруківка помилки ніколи не повинна містити закритий ключ HPKE.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: hpke-rs 0.6.1 | RUSTSEC-2026-0124
Випадковий генератор і тимчасові значення HPKE потребували справжнього очищення. Невдала автентифікована розшифровка також може залишити в пам’яті частково змінений буфер відкритого тексту.
Наприклад, якщо повідомлення не проходить автентифікацію, наполовину оброблений буфер відкритого тексту слід негайно стерти.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: hpke-rs-rust-crypto 0.6.1 | UMB-122
Випадковий стан, виведення ключа, байти приватного ключа та помилкові буфери шифрування потребують очищення. Недійсна довжина nonce та непідтримувані запити на обмін ключами можуть досягати шляхів завершення процесу.
Наприклад, неправильно сформований nonce має повертати звичайну помилку замість закриття месенджера.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: openmls_rust_crypto 0.5.1 | UMB-122, UMB-123, UMB-124
Підписання nonces, спільних ресурсів, скалярних байтів і тимчасового читабельного секретного рядка потребувало очищення шляхів успіху та помилки. Невикористана функція також спричинила непідтримуваний ланцюжок залежностей.
Наприклад, тимчасові значення, які використовуються для підпису групи, не повинні залишатися доступними для читання в пам’яті після завершення або невдачі підписання.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: frost-core 3.0.0 | local audited patch
Відкинуті псевдовипадкові ключі та проміжні блоки розширення ключа можуть залишитися в пам’яті після створення остаточного ключа.
Наприклад, після того, як ключ сеансу буде готовий, тимчасові компоненти, використані для його отримання, повинні бути стерті.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: hkdf 0.12.4 | local compatibility backport
Похідні ключові блоки, дайджести великого ключа та внутрішні хеш-результати в сумісній гілці HMAC можуть залишатися у звичайній пам’яті.
Наприклад, перевірка автентичності повідомлення не повинна залишати байти, отримані з ключа для повторного використання.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: hmac 0.12.1 | local compatibility backport
Доступну опцію очищення було вимкнено за замовчуванням і охоплювало лише частину тимчасового та збереженого стану, отриманого з ключа.
Наприклад, завершення перевірки автентифікації має очистити як тимчасові, так і збережені блоки, отримані з ключа.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: hmac 0.13.0 | local audited patch
Лічильники робочого стану та блоків SHA-256 і SHA-512 потребували очищення під час відкидання на сумісній гілці.
Наприклад, хешування секрету під час виведення ключа не повинно залишати робочий стан механізму хешування в багаторазово використовуваній пам’яті.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: sha2 0.10.9 | local compatibility backport
Пошкоджений вхід може вимагати великого розподілу, читати за межі оголошеного поля, зациклюватися без прогресу або викликати шляхи переповнення та паніки. Секретна векторна діагностика та частковий помилковий вхід також потребували очищення.
Наприклад, крихітне повідомлення, яке фальшиво стверджує, що містить величезне поле, не повинно споживати величезну пам’ять або захоплювати програму в нескінченному циклі.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: tls_codec 0.4.2 | local audited patch
Ключ цілісності повідомлення STUN можна було надрукувати в діагностиці та не було явно стерто разом із текстом тимчасових облікових даних.
Наприклад, журнал помилок підключення не повинен розкривати секрет, який використовується для автентифікації запиту ретрансляції.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: stun 0.17.1 | audit patch 6e5cbb42
Довговічний пароль TURN зберігався як звичайний рядок і потребував явного видалення, коли клієнт було знищено.
Наприклад, завершення виклику не повинно залишати пароль ретрансляції в пам’яті старого клієнтського об’єкта.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: turn 0.17.1 | audit patch 6e5cbb42
Імена користувачів і паролі TURN зберігалися як звичайні рядки та автоматично друкувались у вихідних даних налагодження ICE.
Наприклад, у звіті про з’єднання виклику може бути зазначено, що облікові дані існують, але він не повинен друкувати ім’я користувача та пароль.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: webrtc-ice 0.17.1 | audit patch 6e5cbb42
Введення медіа-ключа, похідні ключі, збережені солі SRTP/SRTCP і робочий стан шифру потребували надійного очищення.
Наприклад, після завершення зашифрованого виклику його тимчасові мультимедійні ключі та солі не повинні залишатися в звичайних буферах.
Підготовлено локальне виправлення, триває перевірка.
Технічні деталі: webrtc-srtp 0.17.1 | audit patch 6e5cbb42
Щоб стежити за нотатками про бету та доступ, підпишіться на мій особистий акаунт X.