AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Moderate 57 Bitcoin

Squashed 'src/ipc/libmultiprocess/' changes from 1fc65008f7d..1868a84451f

Public commit record

What the developer wrote

Authored by Ryan Ofsky

100/100 · Strong
Squashed 'src/ipc/libmultiprocess/' changes from 1fc65008f7d..1868a84451f

1868a84451f Merge bitcoin-core/libmultiprocess#245: type-context.h: Extent cancel_mutex lock to prevent theoretical race
fd4a90d3103 Merge bitcoin-core/libmultiprocess#244: ci: suppress two tidy lint issues
16dfc368640 ci: avoid bugprone-unused-return-value lint in test
dacd5eda464 ci: suppress nontrivial-threadlocal lint in proxy.cpp
ef96a5b2be2 doc: Comment cleanups after #240
e0f1cd76219 type-context.h: Extent cancel_mutex lock to prevent theoretical race
290702c74ce Merge bitcoin-core/libmultiprocess#240: Avoid errors from asynchronous (non-c++) clients
3a69d4755af Merge bitcoin-core/libmultiprocess#241: doc: Bump version number v7 -> v8
0174450ca2e Prevent crash on unclean disconnect if abandoned IPC call returns interface pointer
ddb5f74196f Allow simultaneous calls on same Context.thread
c4762c7b513 refactor: Add ProxyServer<Thread>::post() method
0ade1b40ac5 doc: Bump version number

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 1868a84451fe1b6a00116375a5f717230bb2533e
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit updates Bitcoin Core's internal IPC helper library (libmultiprocess) to fix crash and race-condition bugs that can happen when an IPC client disconnects while a server call is still running. It also removes an earlier 'thread busy' limitation so multiple calls can now be queued on the same worker thread. The changes are defensive hardening of inter-process communication, not a new user-facing feature.

Recommended action

Review the libmultiprocess subtree bump for correctness, run the updated mptest cases (especially the new simultaneous-call and disconnect-during-call tests), and consider backporting to affected stable branches if Bitcoin Core uses IPC in those releases. No immediate emergency response is indicated because the issue is local-process IPC misuse/disconnect, not remote network exploitation.

Security signals we found

01

Fixes crash on unclean disconnect when abandoned IPC call returns interface pointer

02

Adds cancellation monitoring (CancelMonitor/CancelProbe) to detect canceled IPC requests

03

Extends cancel_mutex lock to prevent theoretical race between event loop and worker thread

04

Uses connection Canceler to interrupt in-flight method calls on disconnect

05

References bitcoin/bitcoin#34250 crash scenario in code comment

06

Adds TryFinally helper to avoid clang destructor-skip bug with throwing cleanup code

Risk score

Why this scored 57/100

Our methodology →
Potential impact 18/30
Exploitability 10/25
Stealth signal 8/15
Affected reach 10/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.