MetaMask / MetaMask/metamask-extension

[Bug]: Attempting to sign via Safe frontend via Ledger Hardware Wallet returns "blind signing disabled" error on large transactions

Open
#41,424 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

external-contributor INVALID-ISSUE-TEMPLATE regression-prod-13.22.0 Sev2-normal team-confirmations type-bug
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

I'm sharing on behalf of a friend. Apologies for not having all the finer details.

**Describe the bug**

When attempting to sign a large transaction (e.g. a transaction where the data is >96713 chars), MetaMask says that **blind signing is disabled** even though it's not.

These txns could be signed successfully a month ago, now they fail.

**Facts:**

- Ledger Nano X.

- MetaMask fully up to date.

- Ledger Firmware fully up to date.

- User can still sign other transactions that are shorter / more "normal". It's just the big ones that cause issues.

- Same transaction via Rabby fails as well but with a different error message ("Invalid Data"). User states it "has always been this way."

- Same transaction via other wallets generally just time out (silently.)

- Same transaction from Gnosis Safe frontend -> Ledger Live application DOES allow the txn to be successfully signed.

Based on the information available, I suspect that something was updated relatively recently with either MetaMask or the underlying Ledger library that prevents these transactions from being able to be signed now.

It may be something that MetaMask recently updated but Rabby updated a long time ago.

It's likely something around the size or length of the data. The "blind signing" error is NOT because blind signing is turned off, but because Ledger rejected the data (or the libraries figured Ledger rejected the data.) Rabby returns a different error ("invalid data") but the root cause is likely the same.

**Expected behavior**

Users should be able to sign a (large) transaction (one with a lot of data) via their Ledger.

**Steps to reproduce**

1. Construct a sizable txn via Gnosis Safe frontend
2. Attempt to sign via Ledger via MetaMask
3. Transaction never makes it to the Ledger, see error in MetaMask

**Where was this bug found?**

Live version (from official store)

**Version**

13.22.0

**Build type**

None

**Browser**

Brave

**Operating system**

Linux

**Hardware wallet**

Ledger

**Additional context**

Mostly sharing in case this keeps cropping up in other ways. This is something power users disproportionately experience and these users are more likely to find work-arounds than report.

**Severity**

When users are unable to sign via MetaMask they don't use MetaMask. In this case, the user had never tried to sign from Safe -> Ledger Live before. They will likely continue to do that in the future, even for txns that can be successfully signed via MetaMask.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are named. Start by reproducing the failure with MetaMask 13.22.0, a Ledger Nano X, and a transaction whose data exceeds 96713 characters, then compare signing through the Safe frontend, MetaMask, and Ledger Live. Done means identifying why the large transaction is rejected as blind signing disabled and adding coverage for the affected signing path.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.