Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.
This commit fixes a test that was failing on macOS and other systems where the operating system reports no practical upper bound on the number of open files (called RLIM_INFINITY). The test was passing values larger than a 32-bit unsigned …
This change prevents a peer from accidentally or maliciously opening a second Lightning channel using the exact same Bitcoin transaction output as an existing channel. Because channel IDs are derived from that funding output, reusing it wo…
channel ID collision / duplicate identifierfunding outpoint reusestate confusion between distinct channels
This change fixes a crash in the part of Core Lightning that handles peer connections. Previously, if the same internal connection was unexpectedly set up twice, the program would abort with an assertion failure. Now it logs a debug messag…
Assertion replaced with defensive error handlingPotential denial-of-service crash vector removedDuplicate peer/subd connection now logged and dropped
This commit fixes a bug where a special internal communication channel (file descriptor) used by Core Lightning could accidentally be left in non-blocking mode on macOS under heavy load. When that happened, a part of the program expecting …
Crash/DoS condition in connectd/channeld due to unexpected EAGAIN on synchronous HSM readInherited O_NONBLOCK on SCM_RIGHTS-passed socketpair fd on macOSDefensive hardening: explicit blocking-mode enforcement on setup
This commit fixes a network setup bug in Core Lightning's connection daemon. On some operating systems (macOS, Fedora, Arch, and default Linux kernels), an IPv6 'listen on all addresses' socket was also covering IPv4, which prevented a sep…
Denial-of-service availability fix: on affected systems, the node could not listen on IPv4 when configured for wildcard IPv4+IPv6Memory leak fix in connectd error pathNo evidence of malicious intent in the diff
This commit fixes a bug in Core Lightning's experimental simple-close feature. When two Lightning nodes tried to close a channel cooperatively using the new 'simple close' protocol, one peer was allowed by the specification to burn its own…
Denial of service / unwanted force-close: a spec-compliant peer could cause the local node to force-close a channel, incurring on-chain fees and delays.Funds not stolen: the OP_RETURN output is unspendable, so accepting it cannot redirect funds to an attacker.Value-zero check prevents burning real funds: the patch enforces AMOUNT_SAT(0) on the OP_RETURN output.
This commit fixes a flaky automated test in Core Lightning. The test was sometimes failing because it mined a Bitcoin block immediately after seeing a log message that said a transaction was being broadcast. That log appears when Core Ligh…
This commit updates an internal sorting library used by Core Lightning. The old sorting code could call a comparison function with the exact same item twice when sorting arrays where every element is equal. The commit replaces that old cod…
Old quicksort fallback called comparator with identical pointers on all-equal arraysComparator contract violation: pointer identity no longer implies distinct elementsSorting routine replaced with glibc mergesort+heapsort to avoid self-comparisons
This change only adjusts the project's automated testing setup. It reduces the number of parallel test workers in two CI jobs to stop GitHub's hosted test machines from running out of memory, and adds logging to confirm the cause if they s…
This commit is a test-only fix for macOS. It skips a test that fails because macOS lacks a specific local hostname entry, and it adds a code comment explaining a networking flag. There is no security issue or vulnerability here.
This commit only adds a new unit test file and updates the build Makefile to compile it. It does not change any production code, so it cannot introduce a runtime security vulnerability by itself. The test exercises the existing create_simp…
This commit adds a one-hour delay before Core Lightning broadcasts a mutual channel-close transaction when the local node has the smaller payout and proposed a lower fee than its peer. The goal is to let the peer's higher-fee transaction w…
Race-condition mitigation in mutual-close broadcast after reconnect/rebootHeuristic delay to avoid redundant competing close transactionsNew wire message field delay_broadcast
This commit adds a new sub-program (lightning_simpleclosed) to Core Lightning that implements a new, simpler way for two Lightning nodes to agree on closing a payment channel together. It is a feature addition, not a documented security fi…
New subdaemon handling channel-close funds and signaturesSignature validation on closing_complete / closing_sig via check_tx_sigFee sanity checks against local/remote balances
This change makes a Lightning node respond with a clear warning error if a peer sends certain closing-related messages at the wrong time, instead of silently following the default 'unknown message' path. It is a hardening fix that prevents…
Explicit rejection of protocol messages that should not occur in this daemon statePrevents silent handling of closing_complete/closing_sig inside channeldUses peer_failed_warn to disconnect with a descriptive error
This commit turns on a new experimental Lightning feature called 'simple close' (BOLT2 option_simple_close). It adds the master-side code that starts a new subdaemon, validates mutual-close transactions, stores them, and broadcasts them in…
New subdaemon introduced with HSM signing permission for closing transactionsValidation added for mutual close transaction inputs and output scriptsRemote signature verification before storing close transaction
This commit adds a new helper function that builds a specific kind of Bitcoin closing transaction used by the Core Lightning node software when two channel peers agree on a simpler cooperative close. It follows the BOLT 3 specification, se…
New feature code, not a patch of existing vulnerable codeFollows explicit BOLT 3 specification for option_simple_closeUses standard nSequence 0xFFFFFFFD RBF signalling
This commit adds a new experimental Lightning protocol feature called 'simple close' (feature bits 60/61). It is purely a feature flag and configuration plumbing change: it reserves the feature bit, registers a command-line option, and upd…
This commit only adds new automated tests for an upcoming Lightning protocol feature called option_simple_close. It does not change any production code. Most of the new tests are explicitly marked as expected to fail (xfail) because the fe…
This commit changes a single line in the build Makefile. It updates the 'update-ccan' recipe so that when the project copies code from the CCAN library, it records the exact Git commit hash instead of a Git tag-based version string. This i…
This commit updates a bundled helper library (ccan) and fixes a small but meaningful networking bug in its event loop. Previously, when a socket reported an error, the code always assumed the generic error 'bad file descriptor' (EBADF). No…
Error-handling path changed from a hardcoded generic errno to a real socket error retrieved via getsockopt(SO_ERROR)Cross-platform macOS/Linux behavior divergence in poll(2) error reporting for connect() failuresPotential for downstream logic to behave differently now that ECONNREFUSED (or other real errors) is propagated instead of EBADF