CVE-2025-63929CVE-2025-63929是存在于airpig2011 IEC104项目中的一个高危空指针解引用漏洞。该漏洞源于IEC10X_PrioEnQueue函数在多线程并发入队元素时缺乏适当的线程安全保护机制。当多个线程同时调用该函数时,可能导致对空指针或已释放的队列指针进行解引用操作,从而引发程序崩溃和潜在的拒绝服务攻击。由于该漏洞可通过网络远程触发,且无需任何认证或用户交互,攻击者可以轻易利用此漏洞使目标IEC104服务器服务中断,影响电力、基础设施等关键行业的通信系统正常运行。
该漏洞存在于airpig2011 IEC104的IEC10X_PrioEnQueue函数中,版本截至Commit be6d841(2019-07-08)。问题核心在于多线程并发场景下缺乏同步保护机制。具体表现为:当多个线程同时执行入队操作时,如果其中一个线程释放了队列指针,而其他线程仍尝试访问该指针,将导致空指针解引用或使用已释放内存。由于IEC104协议广泛应用于电力系统SCADA通信,攻击者可通过构造并发送大量并发请求,触发竞争条件,使服务进程崩溃。此漏洞属于TOCTOU(Time-of-check to time-of-use)类竞态条件问题,需要在关键代码段添加互斥锁或使用线程安全的数据结构来修复。