Page 34 - 《软件学报》2026年第7期
P. 34
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
2026,37(7):2719−2741 [doi: 10.13328/j.cnki.jos.007584] [CSTR: 32375.14.jos.007584] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
*
Python 软件包库中 C/C++外部语言调用的安全性分析
胡明哲 1 , 丁秋然 1 , 张子涵 1 , 谢金言 1 , 于 乐 1 , 韩丽萍 1,2
1
(南京邮电大学 计算机学院、软件学院、网络空间安全学院, 江苏 南京 210023)
(计算机软件新技术全国重点实验室 (南京大学), 江苏 南京 210093)
2
通信作者: 于乐, E-mail: yulele08@njupt.edu.cn
摘 要: 软件包库的安全性是软件供应链分析的重要一环, 但是现有研究和工具往往缺乏对软件包库中外部语言
调用的有效分析. PyPI 是 Python 语言的官方软件包库, 其中存储海量不同应用领域的 Python 软件包. 这些软件包
除了包含 Python 语言编写的程序外, 还常包含通过 Python 的外部接口 Python/C API 调用的 C/C++外部语言程序.
分析 Python 软件包库中外部语言调用的安全性对于保障软件供应链的安全可靠具有重要意义. 通过分析互操作官
方文档以及互操作程序分析的相关方法和工具, 构建 Python-C/C++互操作程序的漏洞基准套件, 其中包括 9 小类
行为共计 15 种漏洞模式的基准测试程序, 覆盖内存、类型、异常、并发和数值这 5 大类语言特性以及安装量最
大的 16 个包含 C/C++外部调用的 Python 软件包中的互操作程序漏洞. 通过在漏洞基准套件上评估已有的先进
Python-C/C++互操作漏洞检查工具, 对比分析现有研究和工具的可靠性、完备性和可扩展性, 分析总结 Python-C/C++
互操作安全分析的现状和不足. 通过分析超过 700 个漏洞警告, 确认在 6 个 PyPI 库中新发现 3 种共计 21 个实际
漏洞.
关键词: 软件供应链分析; 跨语言互操作; 漏洞检查; 程序分析; 漏洞基准库
中图法分类号: TP311
中文引用格式: 胡明哲, 丁秋然, 张子涵, 谢金言, 于乐, 韩丽萍. Python软件包库中C/C++外部语言调用的安全性分析. 软件学报,
2026, 37(7): 2719–2741. http://www.jos.org.cn/1000-9825/7584.htm
英文引用格式: Hu MZ, Ding QR, Zhang ZH, Xie JY, Yu L, Han LP. Safety Analysis of C/C++ Foreign Language Calls in Python
Software Package Repositories. Ruan Jian Xue Bao/Journal of Software, 2026, 37(7): 2719–2741 (in Chinese). http://www.jos.org.cn/
1000-9825/7584.htm
Safety Analysis of C/C++ Foreign Language Calls in Python Software Package Repositories
1 1 1 1 1 1,2
HU Ming-Zhe , DING Qiu-Ran , ZHANG Zi-Han , XIE Jin-Yan , YU Le , HAN Li-Ping
1
(School of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210023, China)
2
(State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210093, China)
Abstract: The safety of software package repositories is a critical aspect of software supply chain analysis, but existing research and tools
often lack effective analysis of foreign language calls in the package repositories. As the official package repository for Python, PyPI
stores a vast amount of Python software packages from various application domains. In addition to programs written in Python, these
packages often include C/C++ foreign language programs that are called via Python’s foreign interface—the Python/C API. Analyzing the
safety of foreign language calls in Python package repositories is crucial for ensuring the safety and reliability of software supply chains.
* 基金项目: 国家自然科学基金 (62502226, 62202406); 计算机软件新技术全国重点实验室 (南京大学) 开放课题 (KFKT2025B66); 江苏省
高等学校基础科学 (自然科学) 研究项目 (25KJB520029); 南京邮电大学引进人才科研启动基金 (自然科学) (NY224026, NY224023,
NY224001, NY223164); 南京邮电大学校级自然科学基金 (NY224143)
本文由“智能化基础软件可信构造和供应链安全”专题特约编辑王林章教授、司徒凌云研究员、钟浩研究员、 向剑文教授、张路教授
推荐.
收稿时间: 2025-09-06; 修改时间: 2025-10-20; 采用时间: 2025-12-08; jos 在线出版时间: 2025-12-26
CNKI 网络首发时间: 2026-06-02

