Bitcoin Forum
August 21, 2026, 10:46:55 PM *
News: Latest Bitcoin Core release: 31.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Update to 4.8.1 NOW!  (Read 153 times)
NotATether (OP)
Legendary
*
Offline

Activity: 2436
Merit: 10171


┻┻ ︵㇏(°□°㇏)


View Profile WWW
August 13, 2026, 04:19:56 AM
Merited by LoyceV (4), hosemary (2), vapourminer (1), ABCbits (1)
 #1

If you use Lightning in Electrum wallet then you need to update Electrum to 4.8.1, because it has fixed several critical vulnerabilities that can cause the loss of funds.

Even if you do not use Lightning Network, you should still update as important bugfixes have been made to other parts of Electrum.

Always remember to verify Electrum with PGP after installing it.

[GUIDE] How to Safely Download and Verify Electrum [Guide]

That's a bit odd and I don't like it. So some security fixes are important, but likely not urgent, as if urgent I'd expect a more stricter warning to update as soon as possible. And devs don't want to disclose it yet, which is understandable when disclosure brings more harm than rescue. Still odd to me...

This is why the code is open source, so we don't have to trust the maintainers.

This is a release related to fixing security vulnerabilities in Lightning. If you use Lightning, you should definitely update, otherwise it's not necessary but still recommended.

This commit (https://github.com/spesmilo/electrum/commit/ad208f93f85b68688ac440241c90dd59f9386976) it lowers the maximum allowed cltv expiry threshold used in submarine swaps to around 435 blocks (around 3 days). And the MINIMUM cltv expiry threshold is still 432 blocks. So essentially now it's 3 blocks difference.

The previous maximum allowed value was 4032 blocks, or 28 days (4 weeks).
The reason for this commit is to prevent malicious peers issuing BOLT11 invoices with very long swap expiry times in order to lock funds.

41daa2a additionally warns whether expiremental Lightning routing is enabled on mainnet.

There are others, I will just copy the output ChatGPT gave me before I post a detailed write-up on X

Quote
Submarine swap mining-fee prepayment sanity check — cbdaa03. This is probably the biggest one besides CLTV. The commit explicitly says a malicious provider could specify a negative percentage fee plus a huge mining fee, causing Electrum to send a huge trusted prepayment. The new check caps/sanity-checks that amount. This is directly a malicious swap-provider → loss-of-funds scenario.
Forward-swap refund reorg safety — 908f1ed. Previously Electrum failed the incoming HTLCs after only 1 confirmation of its refund transaction. If that refund got reorged out, the counterparty could notice and potentially claim the on-chain swap after Electrum had already failed the Lightning HTLCs. 4.8.1 waits for 6 confirmations before failing them.
Don't fund a swap when the expected HTLCs never arrived — d91d615. The old flow could time out because the HTLCs were absent, but if the user didn't manually cancel, Electrum could later broadcast the funding transaction despite never having received the corresponding HTLCs. The new code fails the swap when the invoice expires.
Cancel-vs-broadcast race — 87f04e6. There was a race where one thread could cancel/delete a swap while another simultaneously broadcasts its funding transaction. The commit describes the bad outcome explicitly: Electrum could fund the swap, delete its local swap state, and become unable to refund itself.
Forward-swap locktime lower-bound validation — b6241d5. Adds validation against an unreasonably low client forward-swap locktime.
Forward-swap on-chain amount lower-bound check — 7b96366. More validation of values supplied/negotiated during swap setup.
Reverse-swap CLTV limit — 2908d33 / merge ad208f9, the one we were discussing: swap invoices go from the generic 4032-block maximum down to 435 blocks.
Electrum-server resource-exhaustion hardening — PR #10821. The release notes explicitly describe this as “interface: hardening against resource exhaustion.” That is security/DoS hardening against a hostile Electrum server.
TrustedCoin malicious-server CPU DoS — #10822. This one's release-note description is unusually explicit: “billing_index: mitigate against CPU DOS from malicious server.” So a malicious TrustedCoin backend response could make the client consume excessive CPU.
Nostr swap transport duplicate-reply crash — 1cf7dae / #10833. A server sending duplicate replies could cause Future.set_result() on an already-completed future and crash the transport. That's remotely triggerable DoS in the swap communication path.
Lightning channel-ID collision check — #10819. If Electrum is configured to accept incoming channels, it now explicitly checks for channel-ID collisions.
Lightning HTLC dust off-by-one — 3bcb39e / #10820. HTLCs exactly equal to the dust threshold were incorrectly trimmed. That's consensus/commitment-transaction correctness territory, so although the release notes call it a normal bugfix, it is certainly safety-relevant.
Android private-key screenshot protection — #10799. WIF/private keys are now protected from screenshots in additional UI locations. That's straightforward secret-leakage hardening.


 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
TryNinja
Legendary
*
Offline

Activity: 3668
Merit: 10947


@ List of no-KYC websites: https://bitlist.co


View Profile WWW
August 13, 2026, 04:22:22 AM
Merited by vapourminer (1)
 #2

* Security fixes and disclosures:
   - This release contains important security fixes. Details will be disclosed later.

No disclosure means someone will use AI to compare the diffs and potentially, somehow, attack people on older versions? Tongue

 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
NotATether (OP)
Legendary
*
Offline

Activity: 2436
Merit: 10171


┻┻ ︵㇏(°□°㇏)


View Profile WWW
August 13, 2026, 04:40:50 AM
Merited by vapourminer (1)
 #3

* Security fixes and disclosures:
   - This release contains important security fixes. Details will be disclosed later.

No disclosure means someone will use AI to compare the diffs and potentially, somehow, attack people on older versions? Tongue

You don't need to wait for their disclosure, you can already see the fixes on their commit tree. Many of them have descriptions too so you don't need to know how to code to understand them.

Most commits are for Lightning Network, so the main risk is if you use LN on Electrum (personally, I don't).

 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
nc50lc
Legendary
*
Offline

Activity: 3248
Merit: 9019


Self-proclaimed Genius


View Profile
August 13, 2026, 05:03:56 AM
Merited by vapourminer (1)
 #4

Why would they point out that there're undisclosed security fixes while listing those in the same release notes as well?
It's making people think that it's unrelated to the already-given bug fixes in the v4.8.1 release notes.
I noticed that it's also just added-in recently, not together with the rest of the notes.

But checking the patch difference between v4.8.0 and v4.8.1 (github.com/spesmilo/electrum/compare/4.8.0...4.8.1)
I think it's mostly those commits listed in your quote.

ABCbits
Legendary
*
Offline

Activity: 3710
Merit: 10317



View Profile
August 14, 2026, 09:26:44 AM
 #5

* Security fixes and disclosures:
   - This release contains important security fixes. Details will be disclosed later.

No disclosure means someone will use AI to compare the diffs and potentially, somehow, attack people on older versions? Tongue

Hacker using that approach can't be avoided. But without detail from the disclosure, there's lower chance to find and exploit the vulnerability. Although i don't expect much since both detailed release note and compare code changes between 4.8.0 and 4.8.1 can narrow down.

TheButterZone
Legendary
*
Offline

Activity: 3248
Merit: 1093


RIP Mommy


View Profile WWW
August 18, 2026, 08:22:14 AM
Last edit: August 18, 2026, 08:37:40 AM by TheButterZone
Merited by NotATether (2), vapourminer (1), ABCbits (1)
 #6

I'd love to but "macOS (11 and higher)" means I would have to buy a new computer or risk bricking my current one with OCLP to have that binary run.

I wonder if I can avoid bricking/crashing if try to run 4.8.1 as source? Via single-source git clone, I already have Python 3.13.15 running Electrum 4.5.8 as lightly-patched source for the fee minimum & also ran
Code:
python3 -m pip install "protobuf<4,>=3.20"
to get down to the the highest protobuf that 4.5.8 supports, then ../Python/3.13/lib/python/site-packages/google/protobuf/internal/well_known_types.py line 91 edited from
Code:
_EPOCH_DATETIME_NAIVE = datetime.datetime.utcfromtimestamp(0)
to
Code:
_EPOCH_DATETIME_NAIVE = datetime.datetime.fromtimestamp(0, datetime.UTC).replace(tzinfo=None)
to clear the terminal warning.

NotATether (OP)
Legendary
*
Offline

Activity: 2436
Merit: 10171


┻┻ ︵㇏(°□°㇏)


View Profile WWW
August 18, 2026, 09:18:01 AM
 #7

I'd love to but "macOS (11 and higher)" means I would have to buy a new computer or risk bricking my current one with OCLP to have that binary run.

I wonder if I can avoid bricking/crashing if try to run 4.8.1 as source? Via single-source git clone, I already have Python 3.13.15 running Electrum 4.5.8 as lightly-patched source for the fee minimum & also ran
Code:
python3 -m pip install "protobuf<4,>=3.20"
to get down to the the highest protobuf that 4.5.8 supports, then ../Python/3.13/lib/python/site-packages/google/protobuf/internal/well_known_types.py line 91 edited from
Code:
_EPOCH_DATETIME_NAIVE = datetime.datetime.utcfromtimestamp(0)
to
Code:
_EPOCH_DATETIME_NAIVE = datetime.datetime.fromtimestamp(0, datetime.UTC).replace(tzinfo=None)
to clear the terminal warning.

Damn, I didn't realize that old Macs are screwed  Sad

I think it will work. The main challenge will be getting the new ecctools (or whatever it's called) dependency that was introduced in 4.6 to work. Python 3.13 is supported for Electrum for now - the minimum is 3.10, so I think it should work!

 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
TheButterZone
Legendary
*
Offline

Activity: 3248
Merit: 1093


RIP Mommy


View Profile WWW
August 18, 2026, 10:15:52 AM
Last edit: August 18, 2026, 10:40:53 AM by TheButterZone
 #8

Nope.

Code:
    
% ./run_electrum
 13.62 | E | daemon.Daemon | GUI raised exception: SystemExit("Error: Could not import PyQt6. On Linux systems, you may try 'sudo apt-get install python3-pyqt6'"). shutting down.
 13.62 | E | __main__ | daemon.run_gui errored
Traceback (most recent call last):
  File "/Users/Username/electrum/electrum/gui/qt/__init__.py", line 34, in <module>
    import PyQt6.QtGui
ImportError: dlopen(/Users/Username/electrum/venv_481/lib/python3.13/site-packages/PyQt6/QtGui.abi3.so, 2): Library not loaded: /System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers
  Referenced from: /Users/Username/electrum/venv_481/lib/python3.13/site-packages/PyQt6/QtGui.abi3.so
  Reason: image not found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/Username/electrum/electrum/daemon.py", line 680, in run_gui
    gui = __import__('electrum.gui.' + gui_name, fromlist=['electrum'])
  File "/Users/Username/electrum/electrum/gui/qt/__init__.py", line 37, in <module>
    raise GuiImportError(
        "Error: Could not import PyQt6. On Linux systems, "
        "you may try 'sudo apt-get install python3-pyqt6'") from e
electrum.GuiImportError: Error: Could not import PyQt6. On Linux systems, you may try 'sudo apt-get install python3-pyqt6'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/Username/electrum/./run_electrum", line 521, in handle_cmd
    d.run_gui()
    ~~~~~~~~~^^
  File "/Users/Username/electrum/electrum/daemon.py", line 682, in run_gui
    sys.exit(str(e))
    ~~~~~~~~^^^^^^^^
SystemExit: Error: Could not import PyQt6. On Linux systems, you may try 'sudo apt-get install python3-pyqt6'
%

Quote from: Gemini
This error exposes a hard system barrier: modern pre-compiled binary wheels for **PyQt6** (specifically versions linked against newer Qt builds) dynamically link to `UniformTypeIdentifiers.framework`.

That specific Apple framework **did not exist in macOS 10.15 Catalina**—it was introduced natively starting in macOS 11 (Big Sur). Because the framework is missing from your OS, macOS's dynamic linker (`dyld`) immediately aborts execution with `image not found` the moment PyQt6 tries to initialize its GUI modules.

This means the modern 4.8.x codebase cannot run with a native GUI interface on an unmodified macOS 10.15 system unless you run it strictly in **headless / daemon mode** (without PyQt6), or stick to the older 4.5.8 branch where PyQt5 support can target older system libraries.

after I specifically asked Gemini Pro Extended before all this time-wasting, if Electrum 4.8.1 from Python source would be compatible with macOS 10.15.8 & it said yes

Give me GUI or give me death!

Fortunately I venv'd my patched 4.5.8 & origin 4.8.1 from each other, so I'll just deactivate & go back to my pre-venv patched 4.5.8 in checkout, but not delete anything venv yet.

nc50lc
Legendary
*
Offline

Activity: 3248
Merit: 9019


Self-proclaimed Genius


View Profile
August 19, 2026, 04:12:42 AM
Merited by ABCbits (1)
 #9

I'd love to but "macOS (11 and higher)" means I would have to buy a new computer or risk bricking my current one with OCLP to have that binary run.
You're not using lightning and swap anyways so, you're not affected by the currently disclosed issues before v4.8.1

The question is, if your version is affected by those "undisclosed security fixes" mentioned in the release notes.
If it's something urgent, they would've announced to their users to do immediate action already.

For that, you'll just have to wait for their official announcement.

ABCbits
Legendary
*
Offline

Activity: 3710
Merit: 10317



View Profile
August 20, 2026, 11:21:36 AM
 #10

I'd love to but "macOS (11 and higher)" means I would have to buy a new computer or risk bricking my current one with OCLP to have that binary run.
--snip--

I normally don't recommend these approach. But since you have tried editing the source code, have you consider one of these option?
1. Configure docker container with Electrum and X11 forwarding. I know it's possible on linux, but i have no idea if X11 forwarding is even possible on macOS.
2. Install linux in a virtual machine and electrum on it. Easier, but require more storage and RAM.

TheButterZone
Legendary
*
Offline

Activity: 3248
Merit: 1093


RIP Mommy


View Profile WWW
August 20, 2026, 11:28:39 AM
Last edit: August 20, 2026, 02:28:58 PM by TheButterZone
 #11

I'd love to but "macOS (11 and higher)" means I would have to buy a new computer or risk bricking my current one with OCLP to have that binary run.
--snip--

I normally don't recommend these approach. But since you have tried editing the source code, have you consider one of these option?
1. Configure docker container with Electrum and X11 forwarding. I know it's possible on linux, but i have no idea if X11 forwarding is even possible on macOS.
2. Install linux in a virtual machine and electrum on it. Easier, but require more storage and RAM.

Why would I? Not enough storage space either way. The whole point of Electrum for me is not to have dozens of GB used just for bitcoining. I have no need for any of that stuff otherwise. Python, I do.

Code:
% port space python314
215.47 MiB python314

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!