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

argsman: allow duplicate registration between HIDDEN and other categories

Public commit record

What the developer wrote

Authored by Pablo Martin

93/100 · Strong
argsman: allow duplicate registration between HIDDEN and other categories

The assertion added in #35470 to prevent duplicate option registration
across categories was too strict — it also fired when an option was
registered in OptionsCategory::HIDDEN and then again in a real category
(or vice versa).

This is intentional behavior introduced in #13441: options unavailable
in a given binary (e.g. GUI args in bitcoind) are pre-registered as
hidden so shared bitcoin.conf files don't fail. In bitcoin-qt,
SetupServerArgs registers GUI args as hidden, then SetupUIArgs registers
them properly under OptionsCategory::GUI, triggering the assertion and
crashing on startup.

The fix relaxes the assertion to exclude HIDDEN from the cross-category
duplicate check, preserving the original intent of #13441 while still
catching unintentional duplicates between real categories.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit fixes a bug where Bitcoin Core's graphical wallet (bitcoin-qt) would crash immediately on startup. The crash was caused by an overly strict internal safety check that treated a normal, intentional code pattern as a duplicate-setting error. The fix narrows the check so it ignores entries marked as 'hidden' (used for settings that don't apply to a particular program version), restoring normal startup. There is no indication this bug could be exploited by an attacker.

Recommended action

Treat as a routine bug/regression fix rather than a security patch. Users on affected builds should upgrade or apply the patch to restore bitcoin-qt startup. No additional security hardening is indicated.

Security signals we found

01

Fixes a regression causing a denial-of-service-like startup crash in bitcoin-qt

02

Change is a relaxation of an internal assertion, not a memory-safety or cryptographic fix

03

No input-dependent behavior change; crash was deterministic on affected builds

Risk score

Why this scored 26/100

Our methodology →
Potential impact 8/30
Exploitability 0/25
Stealth signal 0/15
Affected reach 5/15
Confidence 9/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.