CVE-2026-41499Wazuh是一个开源的安全监控平台。在4.0.0至4.14.4之前的版本中,其`remoted_op.c`组件的`parse_uname_string()`函数存在严重的堆越界写入漏洞。该漏洞源于代码在处理代理发送的OS标识数据时,未检查字符串是否为空便执行`strlen(ptr)-1`操作。当处理空字符串时,计算发生整数下溢,导致在堆缓冲区前一个字节写入数据,破坏堆元数据,进而引发服务崩溃或潜在的代码执行风险。
漏洞位于Wazuh服务器端处理代理注册信息的`parse_uname_string()`函数中。该函数包含一种危险的代码模式:直接将`strlen(ptr) - 1`作为数组索引进行写入,而未预先判断`ptr`是否为空指针或空字符串。当`ptr`指向空字符串时,`strlen`返回0。在无符号整数运算中,`0 - 1`发生回绕,变为`SIZE_MAX`(即`-1`的补码形式)。由于指针运算的特性,`buffer[SIZE_MAX]`实际上等同于向`buffer`起始位置之前的偏移量为-1的地址写入数据。这种“Off-by-one”堆溢出会覆盖相邻堆块的头部元数据(如glibc malloc的`chunk_size`字段),导致堆管理器崩溃(DoS)或被进一步利用实现任意代码执行。