An Empirical Study of Vulnerabilities in Python Packages and Their Detection
2509.04260v1
cs.SE, cs.AI, cs.CR
2025-09-06
Авторы:
Haowei Quan, Junjie Wang, Xinzhe Li, Terry Yue Zhuo, Xiao Chen, Xiaoning Du
Резюме на русском
## Контекст
Python — одна из наиболее популярных и удобных языков программирования, чье простое синтаксисное оформление, широкий спектр применений и богатый экосистема сделали его широко распространенным в современном программном обеспечении. Однако, несмотря на все преимущества, Python-пакеты часто становятся источником безопасностных уязвимостей. Это происходит в связи с тем, что Python часто используется в сочетании с другими языками для повышения производительности или обеспечения интерапредельности. Уязвимости в Python-пакетах могут привести к серьезным проблемам в системах, где эти пакеты используются. Несмотря на то, что существуют различные инструменты для обнаружения и анализа уязвимостей, их эффективность в реальных условиях и полнота остаются неизведанными. Описываемая работа посвящена разработке PyVul — первого полномасштабного бенчмарка для обнаружения уязвимостей в Python-пакетах. PyVul включает в себя 1157 уязвимостей, подтвержденных разработчиками, и работает с разными методами обнаружения, включая метки на уровне коммитов и функций.
## Метод
PyVul уже стал первым полномасштабным бенчмарком для обнаружения уязвимостей в Python-пакетах. Он включает в себя 1157 уязвимостей, подтвержденных разработчиками, и предлагает метки, которые могут использоваться для тренировки различных моделей фиксации уязвимостей. Для обеспечения точности и качества данных использовано LLM-обученное алгоритм распознавания, которое позволило достичь 100% точности на уровне коммитов и 94% на уровне функций. Бенчмарк также включает подробные анализы распределения уязвимостей в PyVul, показывая, что они могут затрагивать множество языков программирования и иметь разнообразные виды. Это показывает, что многоязычные Python-пакеты могут быть более уязвимы к уязвимостям. Из PyVul также могут быть извлечены важные выводы о состоянии существующих инструментов и путях их улучшения.
## Результаты
PyVul был полностью протестирован на различных данных и сравнивался с текущими инструментами для обнаружения уязвимостей. Экспериментальные результаты показали, что существующие инструменты не всегда удается обнаруживать все виды уязвимостей, в частности те, которые затрагивают многоязычные пакеты. Обнаруженным было, что большинство существующих инструментов не удается обеспечить высокую точность на уровне функций. Однако PyVul, благодаря своему точному меткам, позволяет существенно повысить точность обнаружения уязвимостей в реальных условиях. Также был проведен анализ распределения уязвимостей в различных видах, показав, что в PyV
Abstract
In the rapidly evolving software development landscape, Python stands out for
its simplicity, versatility, and extensive ecosystem. Python packages, as units
of organization, reusability, and distribution, have become a pressing concern,
highlighted by the considerable number of vulnerability reports. As a scripting
language, Python often cooperates with other languages for performance or
interoperability. This adds complexity to the vulnerabilities inherent to
Python packages, and the effectiveness of current vulnerability detection tools
remains underexplored. This paper addresses these gaps by introducing PyVul,
the first comprehensive benchmark suite of Python-package vulnerabilities.
PyVul includes 1,157 publicly reported, developer-verified vulnerabilities,
each linked to its affected packages. To accommodate diverse detection
techniques, it provides annotations at both commit and function levels. An
LLM-assisted data cleansing method is incorporated to improve label accuracy,
achieving 100% commit-level and 94% function-level accuracy, establishing PyVul
as the most precise large-scale Python vulnerability benchmark. We further
carry out a distribution analysis of PyVul, which demonstrates that
vulnerabilities in Python packages involve multiple programming languages and
exhibit a wide variety of types. Moreover, our analysis reveals that
multi-lingual Python packages are potentially more susceptible to
vulnerabilities. Evaluation of state-of-the-art detectors using this benchmark
reveals a significant discrepancy between the capabilities of existing tools
and the demands of effectively identifying real-world security issues in Python
packages. Additionally, we conduct an empirical review of the top-ranked CWEs
observed in Python packages, to diagnose the fine-grained limitations of
current detection tools and highlight the necessity for future advancements in
the field.
Ссылки и действия
Дополнительные ресурсы: