psbt: refuse transaction-independent `SIGHASH_SINGLE` signatures #35977

issue l0rinc opened this issue on August 14, 2026
  1. l0rinc commented at 10:00 PM on August 14, 2026: contributor

    The PSBT signing path can produce a signature that is not bound to the transaction. This happens when SignPSBTInput() is explicitly asked to sign a pre-SegWit input with SIGHASH_SINGLE, but the corresponding output is missing. The signature hash is then the constant digest uint256::ONE.

    The underlying SIGHASH_SINGLE behavior is well known, the raw transaction signing path has refused this case since #1689.

    This PSBT signing gap was also found and disclosed responsibly by the Red Team 🟥.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-08-17 05:51 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me