On 2025-04-04 16:21, John Kehayias via "Development of GNU Guix and the GNU System distribution." wrote:
> Hello, > > (CCing some more security people) > > On Fri, Apr 04, 2025 at 05:51 PM, Simon Josefsson via \"Development of GNU > Guix and the GNU System distribution.\" wrote: > >> Nicolas Graves <ngra...@ngraves.fr> writes: >> >>> Hi Guix! >>> >>> I think one of the things where Guix could be better is security / >>> ensuring CVEs are fixed quickly. >>> >>> In 76819 I developped some missing functionality in the CVE linter, so >>> that it will be easier to get proper missing libraries. >>> >>> A few ideas/questions to advance on that : >>> - there are still a lot of linted CVEs for toolchains (former go >>> versions etc) that users should in principle not be exposed to. >>> Should we handle or ignore those? > > I think we should definitely handle all CVEs, as best we can. Toolchain > updates will be slower unfortunately, but we have grafts we can do of > course (already too many). > >>> - Maybe having a team or a responsible person for this is a good >>> idea. > > Do you mean for package-level CVEs and the like? We do have a > security-team: <https://guix.gnu.org/en/security/> (linked from the > About menu on the Guix homepage). Yes, I meant package-level CVEs. I'm not qualified enough to help on Guix internal CVEs. > Admittedly, we could use more people and rotate out, with some set terms. > It has been mentioned before but not done. I'm on the team and we could > do better. Some things take a while (though I think we have been pretty > good about Guix-specific issues in the recent past), though generally it > is quite low traffic. Prioritizing package updates to do CVEs can and > should be done by us all though. > >>> - A good practice could be to setup a daily job to get notified of all >>> CVEs, so that we can quickly handle them. >> > > That does sound helpful, though also running `guix lint` on any > submission or review of a patch should catch CVEs as well. A set > job/notification sounds helpful. Yes, but a CVE can happen for a package after submission or review, that's why I think such a job could be helpful in the middle term. I think we can start by focussing first on fixing existing CVEs. WDYT about : 1) Reviewing / merging 76819 (adding package properties to better match CVEs to packages in Guix) 2) Run a system-level guix lint -c cve to list/prioritize/organize the work on existing CVEs. 3) After most existing CVEs are fixed, then try to implement our daily automatic script/webhook/whatever to get notified when a CVE is spotted among guix packages. This way even when it's a "false alarm" (bad cpe-name etc), we can simply edit package-properties to get gradually better matches on what is relevant and what is not. Hopefully in the long term, we can achieve some workflow like CVE found with fix -> guix security team notified -> quickfix with graft if necessary -> CVE fixed ! within a few days It's trickier when the CVE is released with no known patch, but at least there Guix would not lag behind any other distribution on security. > Perhaps you also meant a public security list for things like speedier > review of patches with "security-updates" or CVEs listed? I'm not sure > if we want that together or not with a private list for undisclosed > vulnerabilities, but for sure a way to ping some extra people for such > (public) security updates would be great. Presumably we can leverage > what is done for CCing teams to look for those keywords and CC security? > I try to keep an eye open when I can but that is no substitute. I think team-like cc is a good idea. > Oh, while I'm here: we need to ungraft! I would like some sort of > cadence for this, perhaps: > > 1. Any graft immediately has an ungraft patch applied to, say, > "ungrafting-branch" or some branch focused on that. > > 2. This is built and merged every month (?) or once a certain number of > ungrafts/package rebuilds are needed (insert favorite arbitrary number), > whichever comes first. > > Maybe this needs a proper GCD? I think we could just try something as > this is more basic build management than a change to the project, > because right now we keep falling behind and easily spend more time > grafting than building on user systems. I also agree on the ungrafting part, I like the idea! -- Best regards, Nicolas Graves