Cyber Resilience Act
Gregor Mückl
gregormueckl at gmx.de
Wed Sep 16 09:15:42 UTC 2026
Hi!
I want to quickly bring up a topic that is certain to annoy
everybody. I'm sure of it.
The European Union has passed the Cyber Resilience Act (CRA) a
while ago, which imposes regulatory requirements on software
distributed in the European Union. The implementation is in
phases and right now, only the mandatory reporting of exploitable
vulnerabilities in effect since 11. September. But starting 11.
December 2027, software distributed in the EU may need to undergo
a certification process to ensure that the product fulfills
certain minimum security standards.
The whole thing is described in detail here:
https://www.cyberresilienceact.eu/index.html
The short version, as I (not a lawyer!) understand it, is as
follows:
Software falls under the certification requirement as soon as
certain features are present. For example, the mere ability to
communicate over a network triggers the requirement. So, if your
software contacts a server to check if a new version is
available, you've overstepped that boundary already. There are
other criteria, and they split software into four broad
categories:
- Critical: secure hardware with "digital elements" like smart
cards, card readers etc.
- Important, class 2: firewalls, hypervisors, tamper-resistant
microcontrollers/microprocessors
- Important, class 1: operating systems, browsers, identity and
access management, password managers, malware scanners, network
management and a couple more categories
- Default: most business software, games, etc...
The default category of software, which is the broadest category,
is allowed to undergo a self-certification process. The other
categories must be certified by an external named body.
Certification is only possible with a bunch of documentation
describing how security is achieved and maintained in the
product. This stuff needs to be written, even when
self-certifying. There are some requirements for what that
documentation has to cover. There are both technical and
non-technical (process) parts.
Open source software is not fully exempt, although the
requirements are very different and, arguably, much more lax. I
think that for most serious open source projects, this should
come down to providing a solid reporting and handling process for
security vulnerabilities. Many other requirements shift to
whatever commercial entity makes use of open source components.
It seems really, really hard to avoid the CRA entirely while
retaining to the right to distribute software in EU member
states. The implications of this, as I understand them, are
twofold:
- The D Language Foundation may be potentially subject to the
rules for open source stewardship. This should be checked before
the deadline, probably by persons that are more knowledgeable
than I am right now.
- Commercially distributed software that uses D is very likely to
fall under the certification requirement. Those developers will
have to document how they use D and its libraries to make a
secure product.
Are there already plans in place to evaluate how the D Language
Foundation is affected and how to adjust? I suspect that this
will require a whole lot of reading and a few minor policy
changes at most.
Finally, and probably more controversially, is there any interest
in building documentation that helps users of D go through
certification? This could be in the form of a brief manual that
outlines how D code can be written and compiled to avoid certain
classes of security vulnerabilities (GC: no use after free,
bounds checking: no buffer overflows, etc.) as well as outlining
how e.g. the networking features in Phobos are implemented
securely. Doing this collaboratively in the open may help lessen
the load for each individual team out there a little.
Gregor
PS: please keep this discussion focused. Complaining about things
like "EU overregulation" is not a productive contribution. If you
feel the urge to vent, please start a separate thread.
More information about the Digitalmars-d
mailing list