TL;DR: A critical Lightning Network bug discovered back in late June by developer Rusty Russell has been fixed, according to developers, who issued a full disclosure on the matter today. CVE-2019-12998 / CVE-2019-12999 / CVE-2019-13000 were detailed as enabling LN users’ funds to be swiped by a savvy attacker, but specifics were kept under wraps for three months in order to “provide an opportunity to test communications and methods of upgrade across
the entire lightning ecosystem,” developers explained. UPDATED at bottom of article.
Three Month Lightning Network Bug Allowed to Stand Finally Disclosed
CoinSpice reached out to the Lightning Dev list and Rusty Russell regaring the Lightning Network bug, and as of publication we have not received comment. We will update as more details emerge.* In the meantime, the engineering of a second-layer solution was among the central answers to BTC’s long-standing problem of slow payment confirmation times and high transaction fees. Move them off-chain, the thinking went, and perhaps those issues could be solved.
Critics have charged for equally as long Lightning Network was an unnecessary, over-engineered complication to simply raising the block size to meet aggregate demand. Bitcoin Cash (BCH) forked in August of 2017 for at least that very reason, and subsequently proved block sizes could be safely increased. As a consequence, BCH transaction fees are considerably cheaper than BTC, and confirmation times are, well, lightning-fast by comparison.
After three months of a critical bug being on the LN, however, developers revealed how node implementations accepting a channel failed “to always check that the funding transaction output does indeed open the channel proposed.” This meant “an attacker can claim to open a channel but either not pay to the peer, or not pay the full amount. Once that transaction reaches the minimum depth, it can spend funds from the channel. The victim will only notice when it tries to close the channel and none of the commitment or mutual close transactions it has are valid,” devs explained.
Fix This Quietly
Developer Rusty Russell noticed such a phenomenon “while working on protocol tests for the specification itself, as part of an ongoing effort to test multiple new proposed features add new complexities,” the disclosure noted. They eventual flaw “was not mentioned in the specification, so Rusty immediately disclosed the problem the authors of the other most widely used implementations (eclair and lnd). Their own investigations revealed that they were similarly vulnerable in limited circumstances.”
Today’s disclosure also revealed “teams made the decision to fix this quietly for pending releases, then reveal the existence of a problem 8 weeks later, once most users had already upgraded. Four weeks after that, the full disclosure would be made,” racking up nearly 90 days without notifying the public of specifics.
Earlier this month, Lightning Labs did tweet, “This is also a great time to remind folks that we have limits in place to mitigate widespread funds loss at this early stage. There will be bugs. Don’t put more money on Lightning than you’re willing to lose! We recommend updating with all versions, [as] there are always improvements and fixes,” but did not disclose the bug’s details. And back around the same time this three-month-long critical bug was potentially impacting LN users, it was discovered Lightning Labs had nearly a dozen trackers effectively monitoring users without permission.
*UPDATE: Rusty Russell Responds to CoinSpice
“Sorry for the delay,” Russell wrote via email on 29 September 2019 in response to a CoinSpice request for comment. “There’s always a tension between safety and disclosure. In this case, the three implementations agreed that it was best to make sure everyone had done a release and ensure there were no [problems] with upgrades and that the majority of people had upgraded before we disclose the issue at all. Given we found it ourselves it was considered less urgent, but 90 days is fairly standard across the industry. Some people were still caught unaware by the requirement to ugprade, which shows we made the right call in being cautious. Hopefully this has made things smoother for the next time we have an issue which requires upgrading.”
CONTINUE THE SPICE and check out our piping hot VIDEOS. Our podcast, The CoinSpice Podcast, has amazing guests. Follow CoinSpice on Twitter. Join our Telegram feed to make sure you never miss a post. Drop some BCH at the merch shop — we’ve got some spicy shirts for men and women. Don’t forget to help spread the word about CoinSpice on social media.
DYOR: CoinSpice is your home for just spicy crypto things. We’re not affiliated with any cryptocurrency project or token. Each published piece is intended for information purposes only, not investment advice and not in the hope of impacting speculative markets. There are plenty of trading sites and coin-specific advocacy journals out there, we’re neither. CoinSpice strives for rigorous accuracy in our reporting. Information presented here is contingent usually on a host of factors, and the ecosystem moves fast — prices change, projects change, and at warp speed. Do your own research.
DISCLOSURE: The author holds cryptocurrency as part of his financial portfolio, including BCH.