PostgreSQL JDBC 团队发布了 42.5.1、42.4.3、42.3.8、42.2.27.jre7 版本,以修复安全问题 CVE-2022-41946。(注意:42.2.26.jre6 没有修复版本,请参阅安全公告了解替代方案。)
该问题仅在使用 PreparedStatement.setText() 或 PreparedStatement.setBytea() 且 String 或 bytea 参数大于 51200 字节时才会出现。此时驱动程序会将数据缓存到磁盘,并创建一个临时文件,在之前的版本中该文件可能被客户端系统上的其他用户读取。请注意,此问题仅影响类 Unix 系统。详情请参阅安全公告 (https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-562r-vg33-8x8h)。
感谢 Jonathan Leitschuh (https://github.com/JLLeitschuh) 发现并报告了此问题。