CVE-2018-25224PMS 0.42版本中存在严重的栈缓冲区溢出安全漏洞。由于软件在解析配置文件时未对用户输入进行严格的边界检查,本地未认证攻击者可以通过构造包含超长字符串的恶意配置文件来触发该漏洞。攻击者利用溢出数据覆盖栈上的返回地址,并配合面向返回编程(ROP)技术,可成功绕过系统安全防护,最终以当前进程权限执行任意Shell命令,完全控制受影响系统。
该漏洞的根源在于PMS 0.42处理配置文件时使用了不安全的字符串拷贝函数(如strcpy),且未验证输入长度。当程序读取配置项时,攻击者提供的超长数据会写入固定大小的栈缓冲区,导致相邻内存被覆盖。由于CVSS向量显示无需认证且攻击路径为本地(AV:L),利用条件较为宽松。攻击者通过精心设计载荷,首先用垃圾数据填充缓冲区直至返回地址位置,然后植入指向ROP小工具的指针。这些小工具通常存在于程序或系统库中,用于设置寄存器并调用system函数,从而执行如反弹Shell等恶意命令,实现本地提权或代码执行。