SWAT是Samba Web管理工具。 Samba SWAT服务预验证存在缓冲区溢出问题,远程攻击者可以利用这个漏洞在系统上以SWAT进程权限执行任意指令。 问题存在于source/lib/util_str.c文件中的进行HTTP Basic验证的base64_decode_data_blob函数中: int bit_offset, byte_offset, idx, i, n; ... ... if (*s == \'\'=\'\') n -= 1 /* fix up length */ decoded.length = n; return decoded; 其中\'\'n\'\'定义为int.如果字符\'\'=\'\'是最后一个数据,就会从\'\'n\'\'值中减一,此逻辑会在没有任何数据到达时出现问题或当值为1时,\'\'n\'\'减为零而没有相关的BASE64解码,产生基于整数的溢出。由于这个整数值会在之后进行memcpy()操作,因此精心构建提交数据可能以SWAT进程权限执行任意指令。
SWAT是Samba Web管理工具。 Samba SWAT服务预验证存在缓冲区溢出问题,远程攻击者可以利用这个漏洞在系统上以SWAT进程权限执行任意指令。 问题存在于source/lib/util_str.c文件中的进行HTTP Basic验证的base64_decode_data_blob函数中: int bit_offset, byte_offset, idx, i, n; ... ... if (*s == \'\'=\'\') n -= 1 /* fix up length */ decoded.length = n; return decoded; 其中\'\'n\'\'定义为int.如果字符\'\'=\'\'是最后一个数据,就会从\'\'n\'\'值中减一,此逻辑会在没有任何数据到达时出现问题或当值为1时,\'\'n\'\'减为零而没有相关的BASE64解码,产生基于整数的溢出。由于这个整数值会在之后进行memcpy()操作,因此精心构建提交数据可能以SWAT进程权限执行任意指令。