关键漏洞信息 漏洞描述: - 在 函数中,存在一条代码路径可以将 的 设置为 ,这有时会导致系统崩溃。 问题场景: - 当 被调用来取消延迟的组实体队列时,如果实体的父级队列也被延迟,则会发生问题。 - 具体步骤如下: 1. 如果实体是任务,则 被设置为 。如果实体被延迟,则返回 。 2. 第一个 循环取消实体队列。 3. 如果实体是其父级的唯一子项,则下一个迭代尝试取消父级队列。 4. 如果父级队列需要被延迟,则跳出循环而不更新 。 5. 第二个 循环将父级的 设置为保存的 ,即 。 后果: - 这会干扰后续计算,导致潜在灾难性结果。 - 生产环境中观察到的具体表现包括: 6. 在 中, 用于计算 ,最终变为巨大的负数。 7. 用于 。由于 是负数, 被设置为相同的巨大负数。 8. 在 中, 被缩放,导致溢出并产生另一个巨大的正或负数。 9. 调整后的 从 中减去,大幅增加或减少 。 10. 调用 和 ,由于 远离队列中的其他 ,导致负载计算溢出。 11. 没有符合条件的实体, 返回 。 12. 尝试解引用 的返回值并崩溃。