返回首页

CVE-2024-48990:Needrestart Linux 中的 LPE

Needrestart 中的 CVE-2024-48990 漏洞允许通过 PYTHONPATH 操作实现 LPE。机制分析、Ubuntu 和 Debian 的 PoC 利用和修补。服务器防护建议。

通过 Needrestart 的 LPE:CVE-2024-48990 详解
Advertisement 728x90

Linux 中通过 Needrestart 漏洞 CVE-2024-48990 实现权限提升

漏洞 CVE-2024-48990 允许在 Needrestart 工具 3.8 及更早版本中实现本地权限提升(LPE)。问题出在对 PYTHONPATH 环境变量的处理上,从而可以以 root 权限执行任意代码。影响 Ubuntu 21.04 及更高版本、Debian、Fedora 等 Linux 发行版。CVSS 分数:7.8。

Needrestart 在库更新后扫描进程并重启易受攻击的服务。攻击利用了 Python、Perl 和 Ruby 的模块加载路径控制不足,通过替换为恶意路径进行利用。

检查系统是否易受攻击

运行此命令检查版本:

Google AdInline article slot
needrestart --version | grep -q "3.7" && echo "Definitely vulnerable" || echo "Version is potentially not vulnerable, this simply checks for 3.7"

3.8 以下版本易受攻击。该工具在通过 apt 安装软件包时自动运行,从而打开了利用窗口。

逐步利用

演示使用公开 PoC。克隆仓库并以普通用户身份运行脚本:

cd CVE-2024-48990-PoC-Testing
./runner.sh

脚本将 PYTHONPATH 设置为恶意模块。然后,以 root 或通过 sudo 执行触发 Needrestart 的操作,例如:

Google AdInline article slot
sudo apt remove ntp; sudo apt install ntp

这将导致以 root 权限执行代码,打开反向 shell 或直接获取访问权限。

技术攻击细节

漏洞发生在 PYTHONPATH 解析期间:Needrestart 未验证路径,允许注入以提升权限加载的模块。PERL5LIB 和 RUBYLIB 同样适用。

  • 攻击者设置 PYTHONPATH=/path/to/malicious。
  • Needrestart 在扫描期间从指定路径导入模块。
  • 有效载荷以 root 权限执行。

需要本地访问权限,以及由其他用户(通过 sudo)调用 Needrestart。

Google AdInline article slot

防护措施和修补

  • 更新到 Needrestart 3.8 或更高版本:通过增强环境变量验证修复漏洞。
  • 在 /etc/needrestart/needrestart.conf 中禁用解释器扫描:

```

$nrconf{interpscan} = 0;

```

  • 使用 auditd 或 falco 监控环境变量。
  • 使用 AppArmor 或 SELinux 限制 Needrestart。

关键点

  • CVE-2024-48990 通过 PYTHONPATH 在无初始 root 访问的情况下被利用。
  • 影响默认启用 Needrestart 的 Ubuntu 21.04+ 服务器、Debian、Fedora。
  • 3.8 版本补丁:完整模块路径验证。
  • 推荐:禁用 interpscan 以最小化风险。
  • 建议在部署前在隔离环境中测试更新。

— Editorial Team

Advertisement 728x90

继续阅读