On Wed, Feb 5, 2025 at 9:41 AM Piotr P. Karwasz <pi...@mailing.copernik.eu> wrote:
> The current "upgrade hamster wheel" pushes us to make a release each > time a dependency has a vulnerability, regardless of the kind of > vulnerability and its exploitability in our projects. Jup. > VEX files seem the > ideal tool to limit the number of releases or the chain of upgrades that > happens, when a deeply nested dependency has a problem (Apache > Commons?). [In my definition VEX files only contain informations about > CVEs published by dependencies, not the project itself] > That is indeed interesting (see also https://cwiki.apache.org/confluence/display/SECURITY/Dealing+with+security+advisories+for+dependencies), though I've seen relatively few projects successfully consume VEXes yet. Of course it's a bit of a chicken-and-egg thing. Integrating VEX-es into our upgrade policy could be really beneficial: > if something happens to a transitive dependency, but all our direct > dependencies publish a "not affected" VEX statement, we can skip the > upgrade Possibly (or perhaps doing the update but not rushing a release) > and publish a "not_affected" VEX statement ourselves. In this case, shouldn't downstream projects consume that upstream VEX themselves? I'm not sure we should repeat that information. > If a > direct dependency publishes an "exploitable" VEX statement and a nice > description of the conditions under which the bug can be triggered, we > can still check if we meet those conditions in our own code. We won't > have to analyze the code of our dependencies! Maybe we are not affected > and we can just publish a VEX statement that says so. > This would be interesting. It would also be nice to be able to accept such statements/descriptions as contributions. > However, as pointed out by Jarek, what happens if we make a mistake? > Will the ASF or ourselves be liable? > > VEX-es are going to happen, whether we want it or not, because the USA > is pushing for them. If there is a legal risk, however, I will choose to > always publish an "exploitable" VEX statement to be safe and only in the > details I would write "Our analysis shows that the bug is not > exploitable in Foo. Disclaimer: this does not constitute a security > advise, consult your own security expert". > IANAL, TINLA, but: I don't see a reason to treat this any differently to any of the other 'possibly wrong' things we publish, such as code, documentation, and license information. So we should apply our regular common sense and review/monitoring processes for VEX information just like we do for code and releases, and then publishing a 'not affected' statement (perhaps with a "Disclaimer: this does not constitute a security advice, consult your own security expert" note) should be fine. In the end it is in everyone's interest that we share this information if we have it. Companies that apply our software in particularly-risky areas will still have to do their own due diligence, the same way they don't take our word for "it's Apache 2.0 licensed" but do additional checks there as well. Kind regards, -- Arnout Engelen ASF Security Response Apache Pekko PMC member, ASF Member NixOS Committer Independent Open Source consultant