Open-Source & Cyber Resilience Act - Differing opinions aside
Sebastian Schürmann

Sebastian Schürmann @sebs

About: At day: writes Software At night: does Open Source things

Location:
Hamburg, Germany
Joined:
May 28, 2017

Open-Source & Cyber Resilience Act - Differing opinions aside

Publish Date: Jun 26
5 1

The European Union's Cyber Resilience Act (CRA) is set to introduce a new regulatory framework for products with digital elements. Its requirements will have significant implications for software development, including for open-source projects that are either commercialized directly or integrated into commercial products. While the full scope of the CRA's impact on the open-source ecosystem is still being clarified, a proactive approach to understanding its requirements is warranted. Waiting for the regulation to be fully in effect before taking action introduces unnecessary risk. To that end, I have begun a practical assessment of the CRA's potential impact by applying its principles to one of my own open-source projects.

The subject of this assessment is es6-fuzz, a small JavaScript library created several years ago. The project is a suitable case study because it is representative of many open-source utilities: it was released under a permissive license, labeled as "experimental," and has not been actively maintained for some time. This exercise is intended to identify deficiencies relative to modern security standards and the anticipated requirements of the CRA, and to outline a clear path toward remediation.

Security Posture

A review of the es6-fuzz repository reveals several critical security and maintenance deficiencies. The most immediate issue is found in the package.json file, which specifies a dependency on Node.js versions 6 and 7. These versions have long passed their end-of-life and no longer receive security updates. Consequently, any application using this module is built upon an unsupported runtime with known, unpatched vulnerabilities. From a compliance perspective, this is a significant failure, as the CRA emphasizes the need for security support throughout a product's lifecycle.

Beyond this foundational problem, the project lacks the basic procedural and documentary framework required for modern security management. There is no SECURITY.md file to provide a vulnerability disclosure policy, leaving no defined channel for security researchers to report findings privately. The repository also lacks any formal statement regarding a support or maintenance lifecycle. The "experimental" designation in the project's description is insufficient as a disclaimer in a regulatory context that is concerned with a product's actual use case, not its author's original intent. If the module is used in a commercial product, it falls under a higher standard of care. In its current state, the project fails to meet this standard.

Remediation and Compliance

Addressing the identified shortcomings, the objective is not only to patch specific vulnerabilities but to establish a durable security posture for the project. The first technical task is the modernization of the platform itself. This involves refactoring the codebase to ensure compatibility with current Long-Term Support (LTS) versions of Node.js and updating all third-party dependencies to their latest secure versions. This action is the necessary prerequisite for any further security work. Following that, a formal vulnerability management process must be implemented. This will involve creating a SECURITY.md file that clearly outlines the procedure for responsibly disclosing vulnerabilities.

In parallel with process implementation, documentation must be improved. This includes creating a clear support policy that defines the project's maintenance status and lifecycle, specifying which versions will receive security updates and for how long. Furthermore, preparing for compliance with the CRA necessitates the generation of a Software Bill of Materials (SBOM). I will integrate tooling to generate an SBOM in a standard format, such as CycloneDX or SPDX, with each release or evaluate NPMs features here. To ensure these practices are maintained, the project's workflow will be augmented with automated security tooling. This includes Static Application Security Testing (SAST) to analyze the project's source code and Software Composition Analysis (SCA) to continuously monitor dependencies for new vulnerabilities. These steps, taken together, form a coherent strategy to bring the project into alignment with the principles of the Cyber Resilience Act and the general expectations for secure software development.

As a starter: I do think this is a set of really useful tasks. I started with one of them and to be totally honest: it already uncovered a bunch of problems on my side. I am aware, this is far from being end of the road, but apart from its governing effect with fines etc, this law has a intention and a bunch of good ideas. If done right: This is a chance for OS projects, small and big. We just have to learn, how to surf the wave of 'reality decoupled lawmaking' that some people seem to see looming on the Horizon.

Given how much really important OS Software is being written in the EU and with the help of EU citizens, there is no other way than to make it work - other than that the eu can try its hand on a lot of vendor re-implementations of already existing solutions under complete disregard of what makes sense, while still being totally compliant. Sadly it is not enough to rant at lawmakers and people helping that process - so I decided to get my hands dirty and complain later.

Comments 1 total

Add comment