Hi, Recently, a security audit of several Boost libraries has been conducted. The audited Boost version was 1.83.0. The report is now published here: https://ostif.org/boost-audit-complete/ https://ostif.org/wp-content/uploads/2024/05/OSTIF-Boost-Report-PT-v1.4.pdf In short, the following libraries were audited: - Boost.Beast (1 medium issue) - Boost.DLL (1 informational issue) - Boost.Date_Time - Boost.Filesystem - Boost.GIL - Boost.Graph (1 low and 1 informational issues) - Boost.JSON - Boost.Program_Options - Boost.Regex (3 low issues) - Boost.String_Algo - Boost.URL - Boost.UUID No critical or high severity issues were identified. Of the 7 identified issues, 4 are marked as closed, meaning the issues are fixed. The remaining 3 are open and listed in Boost.Beast (medium), Boost.DLL (informational) and Boost.Graph (informational). During audit, several fuzzing harnesses were developed and added to OSS-Fuzz: https://github.com/google/oss-fuzz/tree/master/projects/boost In the report, there were also a few general recommendations given to improve project security: - Monitor OSS-Fuzz Reports - Implement a Vulnerability Disclosure Process - Implement Supply-Chain Attack Countermeasures - Improve the Documentation with Security Mechanisms and Assumptions - Avoid the Abuse of Asserts Also, one general recommendation to Boost users: - Perform Strict Input Validation You can find more details in the report. I'd like to emphasize the "Implement Supply-Chain Attack Countermeasures" part, which basically comes down to signing git tags and release tarballs. I think, our release process is indeed not very reliable, let's say, which showed during the past few releases: - there was instance when different tarballs for the same RC were generated from different git revisions - git tags for the release were missing or pointing to a wrong git commit Also, release tarballs on GitHub don't have hashsums or signatures attached. https://github.com/boostorg/boost/issues/838 For tarballs on jfrog, thankfully, there are hashsums published in the release notes. Perhaps, we could also publish .sig files for all tarballs, and also publish the public key to verify the signature on the website. Also, under "Implement a Vulnerability Disclosure Process" it is suggested to use GitHub Security Advisories[1] as the mechanism for reporting security issues. I've never used this tool, but perhaps it is worth enabling for boostorg on GitHub. Emailing library maintainers privately might not be a very reliable mechanism for such reports, given that maintainers may become inactive. [1]: https://docs.github.com/en/code-security/security-advisories/working-with-re...
On May 23, 2024, at 3:50 PM, Andrey Semashev via Boost
Also, release tarballs on GitHub don't have hashsums or signatures attached.
As I wrote in that issue: The archives on GitHub are not official releases. Please stop pretending/telling people that they are. If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process. — Marshall
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
As Andrey said, they are not a mere artifact of tagging. They were purposely added, and maintained in the github actions script release-cmake.yml. On Thu, May 23, 2024 at 5:10 PM Vinnie Falco via Boost < boost@lists.boost.org> wrote:
On Thu, May 23, 2024 at 4:07 PM Marshall Clow via Boost < boost@lists.boost.org> wrote:
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
Maybe this is something Sam could look into?
Thanks
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
On Thu, May 23, 2024 at 4:22 PM Sam Darwin via Boost
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
As Andrey said, they are not a mere artifact of tagging. They were purposely added, and maintained in the github actions script release-cmake.yml.
How about...maybe we can write a new script, a policeman of sorts who compares the release artifacts with the actual releases, and deletes any GitHub artifact which is not bitwise identical to an Official Release? This way it is guaranteed that all artifacts are in fact Actual Releases. Thanks
On May 23, 2024, at 4:24 PM, Vinnie Falco via Boost
On Thu, May 23, 2024 at 4:22 PM Sam Darwin via Boost
wrote: If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
As Andrey said, they are not a mere artifact of tagging. They were purposely added, and maintained in the github actions script release-cmake.yml.
How about...maybe we can write a new script, a policeman of sorts who compares the release artifacts with the actual releases, and deletes any GitHub artifact which is not bitwise identical to an Official Release? This way it is guaranteed that all artifacts are in fact Actual Releases.
I’m pretty sure that Andrey said that they are purposely different from the official release. — Marshall
On 5/24/24 02:07, Marshall Clow wrote:
On May 23, 2024, at 3:50 PM, Andrey Semashev via Boost
wrote: Also, release tarballs on GitHub don't have hashsums or signatures attached.
https://github.com/boostorg/boost/issues/838 https://github.com/boostorg/boost/issues/838
As I wrote in that issue: The archives on GitHub are not official releases.
Please stop pretending/telling people that they are.
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
They are not a mere artifact of tagging. They were purposely added - first, to help CMake users (CMake-targeted tarballs have a different file layout), then to fix issues with jfrog (the b2 archives are similar to those published on jfrog, but lack documentation). My understanding is that we're moving towards releases on GitHub.
On May 23, 2024, at 4:10 PM, Andrey Semashev via Boost
On 5/24/24 02:07, Marshall Clow wrote:
On May 23, 2024, at 3:50 PM, Andrey Semashev via Boost
wrote: Also, release tarballs on GitHub don't have hashsums or signatures attached.
https://github.com/boostorg/boost/issues/838 https://github.com/boostorg/boost/issues/838
As I wrote in that issue: The archives on GitHub are not official releases.
Please stop pretending/telling people that they are.
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
They are not a mere artifact of tagging. They were purposely added - first, to help CMake users (CMake-targeted tarballs have a different file layout), then to fix issues with jfrog (the b2 archives are similar to those published on jfrog, but lack documentation).
Unless they’re identical to the published tarballs that we provide SHAs for, they should not be used. They’re not tested (among other things)
My understanding is that we're moving towards releases on GitHub.
That’s as may be, but we’ll deal with that then. — Marshall
Sorry - forgot to include the list in my reply.
Begin forwarded message:
From: Marshall Clow
Subject: Re: [boost] OSTIF Boost security audit report Date: May 23, 2024 at 4:15:14 PM PDT To: boost@lists.boost.org On May 23, 2024, at 4:10 PM, Andrey Semashev via Boost
mailto:boost@lists.boost.org> wrote: On 5/24/24 02:07, Marshall Clow wrote:
On May 23, 2024, at 3:50 PM, Andrey Semashev via Boost
wrote: Also, release tarballs on GitHub don't have hashsums or signatures attached.
https://github.com/boostorg/boost/issues/838 https://github.com/boostorg/boost/issues/838
As I wrote in that issue: The archives on GitHub are not official releases.
Please stop pretending/telling people that they are.
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
They are not a mere artifact of tagging. They were purposely added - first, to help CMake users (CMake-targeted tarballs have a different file layout), then to fix issues with jfrog (the b2 archives are similar to those published on jfrog, but lack documentation).
Unless they’re identical to the published tarballs that we provide SHAs for, they should not be used. They’re not tested (among other things)
My understanding is that we're moving towards releases on GitHub.
That’s as may be, but we’ll deal with that then.
— Marshall
Andrey Semashev wrote:
On 5/24/24 02:07, Marshall Clow wrote:
As I wrote in that issue: The archives on GitHub are not official releases.
Please stop pretending/telling people that they are.
If I could remove them entirely, I would do so. But they appear to be an artifact of the tagging process.
They are not a mere artifact of tagging. They were purposely added
Correct, I added them.
- first, to help CMake users (CMake-targeted tarballs have a different file layout), then to fix issues with jfrog (the b2 archives are similar to those published on jfrog, but lack documentation).
I added the b2 archives so that people downloading Boost in CI jobs, especially from Github Actions, can use an archive that is smaller (because it contains no documentation, which isn't needed on CI), doesn't stress our primary downloads, and is much faster to download because it stays within the Github servers.
participants (5)
-
Andrey Semashev
-
Marshall Clow
-
Peter Dimov
-
Sam Darwin
-
Vinnie Falco