Прыватнае бэта-абнаўленне 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
Падпісванне аднаразовых нумароў, абагульвання, скалярных байтаў і часовага чытанага сакрэтнага радка патрабавала ачысткі шляхоў поспеху і памылак. Нявыкарыстаная функцыя таксама выклікала ланцужок залежнасцяў, які не падтрымліваецца.
Напрыклад, часовыя значэнні, якія выкарыстоўваюцца для подпісу групы, не павінны заставацца даступнымі для чытання ў памяці пасля завяршэння або няўдачы падпісання.
Лакальнае выпраўленне падрыхтавана, праверка ідзе.
Тэхнічныя дэталі: 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.