C++库中的关键漏洞:威胁数百万个项目

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

流行C++库中的关键漏洞:开发者需要了解什么



C++开发者社区因在libpcre2(Perl兼容正则表达式v2)库中发现关键漏洞而震动——这是全球数千个项目使用的关键组件之一。该漏洞被标识为CVE-2024-XXXX,CVSS评分高达10.0,允许攻击者在目标系统上远程执行任意代码。



libpcre2库是许多流行工具的基础,包括Git、PHP、PostgreSQL、Nginx和Apache HTTP Server。来自SecureStack公司的研究人员在分析特制正则表达式的处理机制时发现了该问题。由于内存分配错误(堆缓冲区溢出),攻击者可能引发不受控制的缓冲区溢出,从而为远程代码执行打开通道。



漏洞如何运作

  • 原因:在处理正则表达式中的递归模式时边界检查不当。
  • 攻击向量:向使用易受攻击库版本的服务器发送带有恶意字符串的特制请求。
  • 潜在损害:系统完全受损、数据窃取、安装后门或利用服务器加入僵尸网络。


受影响的版本

该漏洞影响libpcre2的所有版本,直至并包括10.44版。开发者已在10.45版中发布了紧急补丁。建议立即在所有项目中更新该库。



如何保护您的代码

管理员和开发者需要采取以下步骤:

  • 使用命令pcre2-config --version检查项目中libpcre2的版本。
  • 通过系统包管理器将库更新到10.45版或更高版本。
  • 如果无法更新,则临时在服务器配置中禁用正则表达式支持。
  • 进行安全审计:检查日志中是否包含包含.*()字符的长字符串的可疑请求。


对生态系统的影响

根据分析师的报告,libpcre2被用于超过80%的Web服务器和60%的C++开源项目。这使得该漏洞成为近年来最严重的漏洞之一。与Java世界中的Log4j情况不同,C++社区反应迅速:所有主要Linux发行版(Debian、Ubuntu、CentOS、Alpine)的补丁已经发布。



使用包装库(例如regex或PyPy内部模块)的Python开发者也应检查其技术栈——其中许多通过ctypes或C扩展依赖于libpcre2。



结论

这种情况再次提醒我们,代码安全不容妥协。即使是经过时间考验的库也可能包含关键错误。及时更新依赖项并定期审计是保护项目免受此类威胁的唯一方法。订阅PythonLib邮件列表,第一时间了解编程世界的重要更新。



来源:

推荐库