Backport upstream fix for GHSA-cvmj-47v9-35m9 onto the bcff57c pin - #9
Open
dflemstr wants to merge 1 commit into
Open
Backport upstream fix for GHSA-cvmj-47v9-35m9 onto the bcff57c pin#9dflemstr wants to merge 1 commit into
dflemstr wants to merge 1 commit into
Conversation
5 tasks
op
reviewed
Aug 18, 2026
op
left a comment
There was a problem hiding this comment.
LGTM!
PS. This change existed last year too from the 0.16.0 release. We aren't affected because of how we use fuser so we never forked fuser, instead passing some proof into vanta to override its decision. Adding this is good tho imho.
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.
Summary
Backports the single upstream commit that fixes GHSA-cvmj-47v9-35m9 onto
fs/pin-bcff57c, the branchmodal-labs/modalpins itsfuserdependency to.The advisory is an uninitialized memory read and leak inside
libfuse.so:fuse_session_newwas being passed a NULL operation list, where libfuse always expects a valid pointer. Upstream fixed it in cberner/fuser#390 (commit47113e1), which definesfuse_lowlevel_opsand passes a zeroed instance instead of NULL.This affects us:
libfuseisfuser's default feature and is enabled in themodal-labs/modalbuild, so the vulnerable code path is live.Why a backport instead of upgrading
modal-labs/modalpreviously tried to fix this advisory by moving from this fork to crates.iofuser0.16.0 (modal#27252). It was reverted a day later (modal#27426) because it was suspected of causing volume reload issues.Jumping to 0.16 also means dropping the 13 Modal-specific commits on this branch on top of upstream
bcff57c— transport-agnostic dispatch,FilesystemSessionextraction, theReplySender/Arc<dyn>elimination, and lowering FUSE request buffers to the negotiatedmax_write.Cherry-picking just the security commit keeps the blast radius to the thing the advisory is actually about, and avoids re-running the change that caused the earlier incident.
Conflict resolution
src/mnt/fuse3.rsapplied cleanly.src/mnt/fuse3_sys.rsconflicted only on the import block at the top of the file: this branch hadand the fix replaces it with a superset import plus the new
fuse_lowlevel_opstype definitions. I took the fix's side, since its imports (c_char, c_int, c_uint, c_void, dev_t, mode_t, off_t, size_t) cover everything the previous two lines provided. No Modal-specific code in that file was dropped; theexterndeclarations below the conflict, including the updatedfuse_session_newsignature, merged automatically.Test plan
cargo buildsucceeds against libfuse3 3.17.4 (only pre-existing dead-code warnings)modal-labs/modal, given the earlier incidentThe companion pin bump in
modal-labs/modalshould not land until that volume reload check is done.Made with Cursor