Following the link to the whitehouse.gov cybersecurity policy doc, it looks like this is for Strategic Objective 3.4 - USE FEDERAL GRANTS AND OTHER INCENTIVES TO BUILD IN SECURITY. (pdf warning):
And I don't have a problem with this. Years ago the National Security Agency contributed the SELinux kernel module, which improved the security of Linux - not only for Americans, but the entire world. I see this as something that the federal government has identified as a problem and they're asking for input on what to fund. And since it's OSS, everyone benefits.
It’s a project to encourage their use. I have also heard about them being required in the future in government roles that are security sensitive which is quite reasonable.
> As highlighted in the National Cybersecurity Strategy and its Implementation Plan Initiative 4.2.1, the ONCD has established an Open-Source Software Security Initiative (OS3I) to champion the adoption of memory safe programming languages and open-source software security.
This says nothing about "requiring" OSS to use memory safe languages. This headline is misleading.
While I could see making this a requirement for USG usage, it seems like pretty big overreach outside of that. It would also interfere with the steady supply of 0days the NSA et. al. need.
I skimmed through the document and don't see anything about them trying to force anyone to use memory safe languages. Looks more like "let's lead the way with using memory safe languages and good security practices, and think how we can encourage others to follow" which is a pretty good thing IMHO.
Using memory-safe languages eliminates entire classes of bugs, and this here is where the real money is:
> Supporting rewrites of critical open-source software components in memory safe languages
There is so, so much open-source software in dire need of funding. Actually getting someone to pay for maintenance - even if it is the US government - is a good thing.
Rust is memory safe if you chose to use it that way. So is c/c++. Rust has no “defined behavior”, unlike c/c++ which has clear defined behavior (via the standard).
Yes I jump to rust when it’s not mentioned… copium