天下漏洞,尽知其名
HIGH

CVE-2026-102010 GCC libstdc++ 释放后使用漏洞

影响攻击者可触发释放后使用,导致应用崩溃或内存破坏

AI 研判

GCC 的 libstdc++ 组件中,对二叉堆优先队列调用 erase_if 函数时存在缺陷。库在重新分配存储后未更新内部条目指针,形成释放后使用(use-after-free)条件。攻击者若能触发该操作,可造成拒绝服务或潜在内存破坏。

影响范围

GCC libstdc++

受影响版本范围暂无公开信息,涉及 GCC 的 libstdc++ 中二叉堆优先队列的 erase_if 实现。

漏洞详情

漏洞类型为释放后使用(use-after-free)。成因是 libstdc++ 在 erase_if 操作中重新分配了底层存储,但未同步更新指向元素的内部指针,使旧指针仍被引用。利用方式是诱导应用对二叉堆优先队列执行 erase_if,从而访问已释放内存。

利用条件与风险

利用前提是应用使用受影响的 libstdc++ 并对二叉堆优先队列调用 erase_if,且攻击者能影响该操作。实战中可导致应用崩溃(拒绝服务),并存在内存破坏进而被进一步利用的可能。

修复建议

官方修复方案暂无公开信息,建议关注 GCC 官方补丁与发行版更新;临时缓解措施为避免在受影响版本中对二叉堆优先队列使用 erase_if,或改用其他容器操作替代。

原始情报

A flaw was found in GCC. When an application calls the erase_if function on a binary heap priority queue in libstdc++, the library reallocates storage but fails to update its internal entry pointer. An attacker capable of triggering this operation can exploit this use-after-free condition, leading to a Denial of Service (DoS) via an application crash or potential memory corruption.