CVE-2026-4191CVE-2026-4191是存在于JawherKl node-api-postgres项目中的一项高危安全漏洞,该漏洞影响版本至2.5。该漏洞存在于用户头像处理模块(Profile Picture Handler)的index.js文件中,具体问题出在对path.extname函数的不当使用上。攻击者可以利用此漏洞绕过文件上传限制,通过路径遍历等技术手段上传任意类型的文件到服务器,包括恶意脚本文件、可执行文件等。由于该漏洞允许攻击者上传任意文件,攻击者可能借此在服务器上执行任意代码,从而完全控制受影响的系统。此漏洞的CVSS评分为7.3,属于高危级别,攻击复杂度低,无需认证和用户交互即可实现远程攻击。漏洞发现者已公开发布了相关利用代码,厂商在收到安全通知后未作出任何回应,因此建议用户尽快采取防护措施。
该漏洞的核心问题在于文件上传处理逻辑中对文件扩展名的验证不足。在Profile Picture Handler的index.js文件中,代码使用path.extname函数来获取上传文件的扩展名,但该函数仅返回文件名的扩展名部分,无法正确处理包含路径遍历序列的文件名(如../evil.js)。攻击者可以通过构造特殊的文件名(如../../../etc/passwd或avatar.jpg/.php)来绕过基于扩展名的过滤机制。具体攻击流程如下:首先攻击者构造包含路径遍历字符的文件名;然后利用path.extname提取的扩展名可能仍然是合法的图片扩展名(如.jpg);但实际文件内容可以是任意恶意代码;当服务器将文件保存到可执行目录时,恶意代码即可被执行。此外,由于缺乏对上传文件内容的验证,攻击者还可以上传包含webshell的PHP、ASP、JSP等脚本文件,进而获得服务器的命令执行权限。