The open source 🄯 server management software for the future.

Self-hosted
Joined January 2023
26821 findings in just 43 projects. This is how AI slop is hurting open source and preventing actual security. At this amount, a majority of "findings" is just spam.
Some personal news: ✅ Loupe has produced 26,821 findings across 43 open-source bitcoin repos ✅ Average successful scan took 2H 52M and returned 53.6 findings ✅ Longest scan ran for 36H 58M ✅ 26,809/26,821 findings shipped a proof-of-concept & 12,774 shipped a proposed patch
1
79
To those responsible for the theft of bitcoin from the Liquid Network: Blockstream will not pay a ransom for the return of stolen funds. Taking assets without authorization and withholding their return is a crime, not responsible disclosure. It is not white-hat activity. It is theft. We have engaged in good faith in an effort to secure the return of stolen user funds and protect the broader Bitcoin community. That effort should not be mistaken for acceptance of the actions taken nor of the terms being demanded. We will not be a party to the precedent that open-source software developed for the good of the Bitcoin community should subject its developers to paying a ransom that far exceeds their economic participation. Bitcoin is hard money and can’t be minted without costs, Bitcoin doesn’t haircut users to pay a ransom. To the Bitcoin community: We are fighting for what we believe in, for the users whose funds were taken, and for the principles on which Bitcoin was built. The community has demonstrated incredible resolve with teams of people dedicating their time in support of each other to identify and patch vulnerabilities in each other's products and systems. We are all driven by the mission that Bitcoin is the single best asset, for every person, company, and institution on the planet to invest, use, and build on. The world is a different place with the advancements of AI, and the Bitcoin community has responded with force to combat that threat. Damage has been done, battles have been lost, but on the whole the Bitcoin community is gaining ground in the war with bad actors. We want to thank the community for those efforts, for your support in hardening the network, helping users recover funds, and for your support in our assertion that crime does not deserve rewards. To those holding the stolen bitcoin: There is still an opportunity to resolve this responsibly. The bitcoin can be returned and we can revert to the standard of white-hat principals. However, if the funds are not returned, we will pursue every lawful avenue available to us. We will work with law enforcement, exchanges, service providers, forensic specialists, and other relevant parties to trace and recover the assets and identify those responsible. More importantly, Bitcoin is transparent by design and the community is made up of the most sophisticated engineers, cryptographers, and white-hat hackers globally. Transactions do not disappear, and neither does the evidence they leave behind. We will not pay for the return of stolen property. We will not abandon our users. The Bitcoin community will not stop pursuing the funds. Return the bitcoin.
762
212
283
1,612
813,345
Brief notes on the liquid hack, followed by 3 open questions. Brief notes: Liquid has confidential transactions, which make use of range proofs to check transactions are valid without revealing the amounts bring sent. These are computationally expensive (relative to most other operations) so a range-proof caching optimisation was introduced ~7 years ago which was intended to avoid re-doing the same calculations unnecessarily. The cache checked - the range-proof bytes - the value commitment The issue appears to be that it didn't check - The asset type - The output script As a result is that a later output that reuses a prior outputs checked features can get a cached pass even when full verification would fail. It seems that the cache is not persistent, so a reboot of a node (possibly amongst other things) will wipe the cache. The error appears to have sat unexploited for 7 years, throughout numerous rewrites & modifications to the surrounding code by multiple people - no one individual bears responsibility for this and the mantra that many eyes make bugs shallow is hopium which must be rejected. Note: Fable5 in Github Copilot found this bug with a simple "spot anything erroneous with this?" prompt on the PR which introduced the caching. Open questions: 1. How did the exploit happen before the fix was widely deployed? It seems that the liquid team did spot and fix this bug prior to the exploit - The fix commit is dated Aug 3, - The PR to master was opened on Sept 1st However it's notable that there hasn't been a release/tag since the fix. Clearly the sideswap team weren't running a fixed build when this was exploited a week later. Given sideswap have the ability to peg-out it is surprising to me that they weren't informed, or if they were that they didn't update. Perhaps the magnitude of this exploit was not well understood when the PR was made introducing the fix publicly to master. 2. Why did Sideshift allow the huge peg-out? There was an assumption by many that the federation imposed restrictions on the peg-out's triggered by members of the federation - were those restrictions honored by Sideshift? Separately, why were there not sanity checks on the total amount per peg-out, and the daily total peg-outs? I think a major learning here is that sanity checking and manual review of large peg outouts would likely have avoided this, but the team may have their reasons for not wanting to be involved in that process whatsoever. 3. Why did liquid.network and blockstream's explorer diverge? It appears that the @liquidexplorer was not affected by the cache exploit - and rejected that transaction. Checking the monitoring page it seems the servers are running version 23.3.2 (released long before the fix was added to master). Was there some configuration which meant that this caching was not performed, or was regularly reset? I will dig into this area more to find out.
20
60
10
243
36,286
> Now, maintainers, who provide the application, suddenly want users to just trust them without being able to easily verify what changed in a release. This is in clear conflict with the "don't trust, verify" approach. +1 on this, reject black box binaries
4
5
20
2,747
We've published a blog post on the dangers of what @BtcpayServer, @Core_LN, and probably other maintainers are doing with security at the moment: nirvati.eu/blog/maintainers-…
2
2
16
9,105
We've reverse engineered this release (LLM-assisted) to confirm it is free of backdoors. Source code that can reproduce the Fedora binaries (others will be tested later) byte-for-byte is published at github.com/nirvati/lightning…. Details on verification will be published tomorrow.
Core Lightning 26.06.7 is out and recommended for every node runner. It fixes vulnerabilities reported over the past three weeks, during a sharp rise in AI-generated reports across open source Bitcoin. Details stay under embargo for two weeks, then all published. github.com/ElementsProject/l…
1
3
277
We are currently reverse engineering the patched binaries and expect to be able to publish a fully reproducible version of the source code within the next 12h (LLM-assisted). We plan to publish a blog post about security and FOSS code embargoes tomorrow.
Core Lightning 26.06.7 is out and recommended for every node runner. It fixes vulnerabilities reported over the past three weeks, during a sharp rise in AI-generated reports across open source Bitcoin. Details stay under embargo for two weeks, then all published. github.com/ElementsProject/l…
1
179
100% byte-identical is sadly not possible, because the binaries include hashes of certain source files that contain comments with contents we can not determine. However, the latest code we published is (when compiled) identical to the upstream release apart from 2 classes,
We've updated this reimplementation to match 2.4.3-rc6. As a next step, there will be small optimizations so we can build a 100% identical binary to make it easier to verify the binary provided upstream has no backdoors.
1
128
which are affected by the embedded hashes.
1
45
We've updated this reimplementation to match 2.4.3-rc6. As a next step, there will be small optimizations so we can build a 100% identical binary to make it easier to verify the binary provided upstream has no backdoors.
We're continuing to publish reimplementations based on the reverse engineering of the newly closed source @BtcpayServer builds. 2.4.3-rc5 is now available: github.com/nirvati/btcpayser… These builds try to reimplement all security fixes. Full source: github.com/nirvati/btcpayser…
1
255
We're continuing to publish reimplementations based on the reverse engineering of the newly closed source @BtcpayServer builds. 2.4.3-rc5 is now available: github.com/nirvati/btcpayser… These builds try to reimplement all security fixes. Full source: github.com/nirvati/btcpayser…
1
1
233
We are not responsible for any additional security vulnerabilities remaining or bugs introduced by this fork. Nirvati will not ship builds of this code, because this is not BTCPay and we do not want to mislead users. We will also not ship closed source BTCPay.
1
39
In the future, we will provide a rebranded, 100% compatible fork of BTCPay so in case the BTCPay team continues to hide security fixes in closed source builds, we can provide fixes in a FOSS alternative quickly. Decompiling & vulnerability analysis normally doesn't take long.
24
A reconstruction that should be feature-complete is now available at github.com/nirvati/btcpayser… You can review the patch yourself to figure out the fixed vulnerabilities. You can also build it to have a verified, more secure build of BTCPay.
A partial reconstruction of BTCPay's closed source build is now available at github.com/nirvati/btcpayser… More changes from this version will be pushed later. The goal is to eventually fully reproduce the compiled code (if possible).
1
1
134
A partial reconstruction of BTCPay's closed source build is now available at github.com/nirvati/btcpayser… More changes from this version will be pushed later. The goal is to eventually fully reproduce the compiled code (if possible).
Replying to @getnirvati
We will try to publish an open source reconstruction of all changes in the latest closed source BTCPay server release later, unless BTCPayServer open sources their code before then.
1
1
260
Nirvati retweeted
We will try to publish an open source reconstruction of all changes in the latest closed source BTCPay server release later, unless BTCPayServer open sources their code before then.
1
1
171
This is a very bad idea in my opinion. Urging people to upgrade to a closed source variant for "security" sounds like trying to ship malware.
Today, we are releasing BTCPay Server v2.4.3-rc4, a security update addressing vulnerabilities reported by the Bitcoin Red Team, @ProjectLoupe, @MagicGrants, @Premai_io, and independent researchers. This release follows several days of nonstop work, review, and testing. It was built from our temporary private security repository, but to make these security fixes available as quickly as possible, we are releasing the Docker image publicly now. This is a release candidate, so bugs may still be present. NFC is now opt-in, and the Phoenixd plugin is temporarily incompatible with this release. Please report any issues to the team. We will document behavioral changes within the main release. Despite its RC status, we strongly recommend upgrading now using the standard process: Server Settings > Maintenance > Update or run or run btcpay-update(.)sh from the command line, removing the parentheses If no significant issues are reported, the release candidate will be tagged as v2.4.3 and fully open-sourced within the next 48 hours.
2
1
322
- Rate limits enforced in more places - Additional authorization checks on some endpoints - Lightning: Change handling of sub-satoshi amounts - Lightning payouts: Define a maximum routing fee - Some PSBT validation in some places
1
36
We will try to publish an open source reconstruction of all changes in the latest closed source BTCPay server release later, unless BTCPayServer open sources their code before then.
1
1
171