Vulnerabilities in open source packages can be a security risk for the client projects that use these packages as dependencies. When a new vulnerability is discovered in a package, the package should quickly release a fix in a new version, referred to as security release in this study. The security release should be well-documented and require minimal migration effort to facilitate fast adoption by the client projects. However, to what extent the open source packages follow these recommendations is not known. The goal of this study is to aid software practitioners and researchers in understanding the current practice of releasing security fixes by open source packages and identifying areas for improvement through an empirical study of security releases. Specifically, in this paper, we study (1) the time lag between fix and release; (2) how security fixes are documented in the release notes; (3) code change characteristics (size and semantic versioning) of the release; and (4) the time lag between the release and an advisory publication on Snyk or NVD (two popular vulnerability databases) for security releases over a dataset of 4,377 security advisories across seven package ecosystems. We find that the median security release is available in under 4 days of the corresponding fix and contains 134 lines of code (LOC) change. Further, we find that 61.5% of the security releases come with a release note that documents the corresponding security fix. However, Snyk and NVD may take a median of 25 days (from the release) to publish an advisory for these security releases, possibly resulting in delayed notification to the client projects. Based on our findings, we make four recommendations for the package maintainers and the ecosystem administrators, such as using private fork for security fixes and standardizing the practice for announcing security releases.
翻译:使用这些软件包作为依赖性的客户项目,开放源码软件包的不稳定性可能是一种安全风险。当在软件包中发现新的弱点时,软件包应迅速在新版本中发布一个固定装置,在本研究中称为安全释放。安全释放应当有详细记录,并需要最低限度的迁移努力,以便利客户项目快速采纳这些建议。然而,公开源码软件包遵循这些建议的延迟时间间隔程度尚不得而知。本研究的目的是帮助软件从业人员和研究人员了解目前的做法,即通过开放源码软件包发布安全修正,并通过安全释放的经验性研究确定需要改进的领域。具体地说,我们在本文件中研究(1) 固定和释放之间的时间差;(2) 安全释放的代码变化特征(大小和语义版)应当记录;(4) 公布Snyk或NVD(两个公众脆弱性数据库)之间的时间间隔,以便在7个软件包生态系统的4 377套数据集中发布安全信息时,我们发现中位安全发布安全信息的时间间隔是在4天之内,我们使用相应的安全发布指令的S-5号指令,并且包含我们安全发布规则的134行。