Description
I recently happened to look into the vulnerability reports since Node 10 to hound for "reasons to push infra teams in companies to invest in an upgrade" and noticed that quite a lot of vulnerabilities rated with high severity only have very limited impact. In particular, this applies to high severity vulnerabilities that are applicable only when users rely on policy or permissions, which are experimental features behind flags.
While I don't have data for the adoption of these features (nodejs/next-10#261 should help giving us some insights into this), I suspect the percentage of users who would be affected by those would be <1%; and in terms of what I was looking for, these vulnerabilities in experimental features probably aren't relevant enough for any company to invest in an infra upgrade, even when they are rated as high severity and look serious (most companies that count on the stability of Node.js simply won't rely on experimental features in production) . Take https://hackerone.com/reports/2199818 for example - this gets a 9.8 CVSS Score and rated as high severity, so it looked like a big deal, until you realize that it's nothing to worry about if you don't use --experimental-permission
, and only very few people use it currently, AFAICT.
To me it doesn't seem quite right that vulnerabilities in features that the ecosystem doesn't generally rely on (yet) are rated the same way as vulnerabilities in features that are widely used. The over-rating can potentially lead to alarm fatigue and could lead to people taking the security updates less seriously overall.
I am not quite sure how we should adjust the process or how we can change the CVSS vector assessment for this, but at least the manual rating is something we can tweak. One immature suggestion could be, for vulnerabilities that only apply to experimental features used by <1% of our users (not sure if the survey data is reliable enough in this regard), or experimental features that are not yet reaching "release candidate" status, the manual rating of severity should be no more than "low". If the experimental feature is actually already used by many people, say >10%, or there are known popular npm packages with >100K downloads/week combined relying on it, then the upperbound can be "medium". These are all very imaginary numbers, I'd appreciate if someone more knowledgable about security rating can devise a more accurate model, but I do believe adjusting the rating according to feature adoption would help making sure people take the security updates more seriously.