index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html
![]()
近期,悬镜供应链安全情报中心监测到一起针对Python生态的严重投毒事件。名为graphdict的恶意组件包被伪装成日下载量超百万的知名网络图结构分析库NetworkX,并被恶意植入到Pypi官方仓库。该恶意包通过克隆NetworkX源码,并在其中植入加密和混淆的恶意代码,能够释放或动态加载执行攻击者控制的代码,主要目的是进行C2远控活动。目前,该恶意组件已在Pypi上造成超过2000次下载,对使用NetworkX库的Python项目构成了潜在的安全风险。
📦 **恶意组件伪装知名库,广泛传播风险高**:名为graphdict的恶意Python包通过克隆知名网络图结构分析库NetworkX的源码,并将其重命名,成功伪装成合法组件。该包在Pypi官方仓库中发布了3.4.12至3.4.14三个版本,并且日均下载量已达百万级别,极易被开发者误用,从而导致供应链安全风险的广泛传播。
💻 **代码加密混淆,恶意行为难以溯源**:投毒者将恶意代码加密并植入到graphdict包的graph_config.py和load_libraries.py文件中。load_libraries.py中的load_libraries接口内置了加密压缩混淆的代码,需要通过特定的解密、base64解码和zlib解压缩才能执行eval命令,从而启动恶意行为。这种复杂的处理方式增加了对恶意代码进行逆向分析和溯源的难度。
🌐 **远程服务器控制,实现C2远控活动**:解密后的恶意代码能够从远程服务器动态加载和执行投毒者可控的攻击代码。文章中提到的两个远程配置链接(raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example 和 .nvmrc)表明,攻击者正通过这些链接获取实时数据来控制恶意代码的执行逻辑,推测其主要目的是进行命令与控制(C2)的远控活动。
🛡️ **排查与卸载方法明确,用户需警惕**:为防范此投毒事件,开发者可以通过`pip show graphdict`命令检查系统中是否安装了受影响的组件版本,若已安装则应立即使用`pip uninstall graphdict -y`进行卸载。此外,还建议关闭系统网络并排查异常进程。OpenSCA-cli等安全工具也可用于快速扫描项目是否受到投毒包影响。
原创 悬镜安全情报中心 2025-07-11 15:02 北京
近日,悬镜供应链安全情报中心在python仓库捕获到一例伪装成日均下载量超百万次的知名网络图结构分析库NetworkX包投毒事件,影响深远。

近日(2025年7月9号),悬镜供应链安全情报中心在Pypi官方仓库中捕获1起伪装成日均下载量超百万次的网络图结构分析库NetworkX ( https://pypi.org/project/networkx )的投毒事件。在北京时间7月8号夜间,投毒者连续投放三个版本(3.4.12~3.4.14)包含恶意代码的组件包graphdict,恶意代码被加密后植入到graph_config.py和load_libraries.py文件中,主要功能是本地释放并执行内置的恶意代码,或者从远程服务器动态加载执行投毒者可控的攻击代码。截至目前,该恶意组件在pypi官方仓库下载量超过2000次。悬镜安全已于第一时间将该组件投毒的详细技术分析向XSBOM供应链安全情报订阅用户进行推送预警。
恶意组件graphdict项目主页
graphdict恶意包下载量该恶意组件包基本信息如下所示:
恶意组件包名投毒版本发布时间
graphdict[3.4.12, 3.4.13, 3.4.14]2025/07/08
以graphdict恶意包最新版本3.4.14为例,投毒者通过对NetworkX项目源码(https://github.com/networkx/networkx)进行代码克隆后,将项目中的核心模块netwrokx重命名为graphdict,同时在graphdict/utils目录下植入两个包含投毒代码的恶意文件graph_config.py及load_libraries.py。
恶意包graphdict代码结构及恶意文件
下图为合法python组件包NetworkX的项目源码代码及文件目录结构,与恶意组件graphdict项目代码对比后可发现两者之间存在极大相似度。NetworkX项目代码结构
以投毒文件graphdict/utils/load_libraries.py为例,load_libraries接口内置加密压缩混淆的恶意代码,simple_shift_decrypt接口负责解密,解密后的代码数据需要进一步通过base64解码以及zlib解压缩后才会调用eval执行最终的恶意代码。恶意代码会进一步请求攻击者服务器加载最新的远程恶意代码并执行。由于解密密钥未直接硬编码在graphdict组件源码中,而是通过特定接口参数来动态计算,截至目前经过多次尝试仍未能成功还原出解密密钥,但根据恶意代码中使用到的远程配置链接及代码功能,可推测下一阶段攻击代码主要实施C2远控活动。load_libraries.py 投毒文件代码
load_libraries投毒函数核心功能代码 恶意代码内部使用以下两个远程配置链接获取实时数据用于控制远程恶意代码执行逻辑。URL地址 | 响应数据 |
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example |
JWT_SECRET= EXPIRATION=9999h PORT=3000 DB_USER=admin DB_PASS=321321321
|
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.nvmrc
| 18.16.0
|
graphdict投毒包涉及的恶意IoC数据如下表所示:
开发者可通过命令 pip show graphdict 查询系统中是否已安装存在恶意投毒的组件版本,如果已安装请立即使用 pip uninstall graphdict -y进行卸载。同时还需关闭系统网络并排查系统是否存在异常进程。
此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。
[
{
"product": "graphdict",
"version": "[3.4.12, 3.4.13, 3.4.14]",
"language": "python",
"id": "XMIRROR-MAL45-C6C78A7D",
"description": "恶意python组件伪装知名网络图结构分析库开展投毒代码攻击",
"release_date": "2025-07-09"
}
]
悬镜供应链安全情报中心是全球首个数字供应链安全情报研究中心。依托悬镜安全团队强大的数字供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报预警、情报溯源、可视化关联分析等企业级服务。
悬镜安全,起源于子芽创立的北京大学网络安全技术研究团队“XMIRROR”,作为数字供应链安全和DevSecOps敏捷安全开拓者,始终专注于以“AI智能代码疫苗”技术为内核,凭借原创专利级“多模态SCA+DevSecOps+SBOM风险情报预警”的第四代DevSecOps数字供应链安全管理体系,创新赋能金融、车联网、通信、能源、政企、智能制造和泛互联网等行业用户,构筑起适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的共生积极防御体系,持续守护中国数字供应链安全。
阅读原文
跳转微信打开