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
随机状态、密钥派生输出、私钥字节和失败的加密缓冲区需要清理。无效的随机数长度和不受支持的密钥交换请求可能会到达进程结束路径。
例如,格式错误的随机数必须返回正常错误,而不是关闭信使。
本地修复已准备就绪,正在进行验证。
技术细节: 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
关于 beta 记录和访问更新,请关注我的个人 X 账号。