Add advisory for beamr: three classes of silent memory corruption (fixed in 0.16.3) - #3121
Closed
tomWhiting wants to merge 1 commit into
Closed
Add advisory for beamr: three classes of silent memory corruption (fixed in 0.16.3)#3121tomWhiting wants to merge 1 commit into
tomWhiting wants to merge 1 commit into
Conversation
Filed by the crate maintainers. Fixed in 0.16.3; affected range measured across the tag history rather than assumed from the versions current when the fix was written. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Member
|
Use the pull request template. |
4 tasks
Author
|
Re-filed as #3122, using the template — apologies for the process miss on this one. Correcting the record on something this PR body said, since it stands publicly under our name as our position on disclosure. It argued that filing "would add enforcement rather than information." That reasoning was wrong and we withdraw it. A consumer on an affected version running Two further corrections found while preparing the re-file, both in #3122:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Filed by the
beamrmaintainers, per CONTRIBUTING's exemption formaintainer-filed advisories.
beamris a BEAM virtual machine with a per-process generational copyingcollector. Three classes of defect allowed garbage-collected memory to be read
after it had been relocated or freed. All three are fixed as of
0.16.3.as_bytesborrow-across-allocation (fixed 0.16.3) — a helper handed out&'static [u8]borrowed from process-heap memory; eleven real crossings,nine of them BIF sites reachable from ordinary Erlang/Gleam string and
binary operations.
word[0]and couldArc::from_rawa heap-cons payload.they pointed into.
There is no panic or crash in any of these. The vacated region is
zero-filled rather than poisoned, so the failure mode is corrupted or freed
data read as valid.
On the affected range
patched = [">= 0.16.3"]with nounaffectedbound, deliberately.Our own changelog previously said "if you are on 0.16.0 or 0.16.1" — 56
versions are published and it named two. Preparing this advisory is what
caught it. Measured: the file carrying the borrow helper and all five affected
string BIFs is byte-identical — one blob hash — across all 29 tags from
0.4.4through0.15.2and at the0.16.2release commit, and the helper'ssignature is present from
0.2.0. The introduction points of the two0.16.2-fixed classes have not been measured, and the advisory says so
rather than implying a narrow range.
Scope note
The advisory text also mentions a separate JIT-reachable rooting class that is
still open and is publicly disclosed in the project's changelog. It is
deliberately not the subject of this advisory — there is no fix to point at
and no configuration a consumer could change in response, so filing it would
add enforcement rather than information. It is mentioned only so that
upgrading to
0.16.3is not read as a clean bill of health.Happy to adjust categories, wording, or split this into per-class advisories
if the maintainers prefer.