SIGSEGV (use-after-free) in FUSE session teardown: MFMount Channel.close / dispatch_channel_cancel

未关闭
#1,863 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
44/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
c

调研方向

Start by tracing VeraCrypt’s mount/unmount flow into the FUSE teardown calls named in the crash stack: fuse_chan_destroy, fuse_session_destroy, and fuse_destroy. The report points to MFMount Channel.close() and dispatch_channel_cancel, but does not identify the relevant source files or tests. Reproduce the teardown after sustained I/O and verify that it no longer faults.

由索引模型根据 Issue 内容生成。

描述

Crash: SIGSEGV (use-after-free) in FUSE session teardown

Environment

  • VeraCrypt: 1.26.29
  • macOS: 26.6.2 (25G83), Apple Silicon (arm64)
  • macFUSE: 5.3.3

Crash

  • Exception: EXC_BAD_ACCESS (SIGSEGV), KERN_INVALID_ADDRESS at 0x0000000000000110
  • Faulting thread (single-threaded child, fork pre-exec):
libdispatch  _dispatch_root_queue_push+228
libdispatch  dispatch_channel_cancel+52
MFMount      Channel.close()+160
MFMount      closure #1 in MFChannelClose(_:)+84
MFMount      _MFChannelClose+32
MFMount      MFChannelClose+40
libfuse.2    fuse_chan_destroy+104
libfuse.2    fuse_session_destroy+44
libfuse.2    fuse_destroy+428
VeraCrypt    (mount/unmount flow)

Looks like a use-after-free of a dispatch channel in the FUSE session teardown path (Channel.close() -> dispatch_channel_cancel).

Repro hint: after sustained I/O on a mounted volume, the volume returns Device not configured (ENXIO); session teardown then intermittently faults as above. macFUSE 5.1.3 exhibits the same behavior.

Full .ips crash report available on request.

主要语言
C
星标
11.7k
派生
1.4k
平均合并
1 天 1 小时
30 天内合并 PR
28

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

veracrypt/VeraCrypt 的其他 Issue

查看 veracrypt/VeraCrypt 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。