Skip to content

chore: bump BTCPay Server to 2.4.3-rc4 - #106

Merged
MattDHill merged 1 commit into
masterfrom
chore/bump-btcpay-2.4.3-rc4
Aug 13, 2026
Merged

chore: bump BTCPay Server to 2.4.3-rc4#106
MattDHill merged 1 commit into
masterfrom
chore/bump-btcpay-2.4.3-rc4

Conversation

@MattDHill

Copy link
Copy Markdown
Member

Security update to BTCPay Server 2.4.3-rc4. Package version 2.4.2:12.4.3-rc.4:0.

Prerelease, from a different image repo

Upstream publishes release candidates to btcpayserver/btcpayserver-internal, not the public btcpayserver/btcpayserver, so this bump changes the image repo as well as the tag:

btcpayserver/btcpayserver:2.4.2  →  btcpayserver/btcpayserver-internal:2.4.3-rc4

At packaging time 2.4.3 had no GitHub release, git tag, or changelog, and master was not ahead of v2.4.2 — consistent with an embargoed fix staged ahead of disclosure. The release notes therefore state that the specifics are not yet public rather than describing the vulnerability; they should be filled in once upstream publishes. UPDATING.md documents the internal channel and says to move the pin back to the public repo when the final release lands.

For the same reason I could not check whether 2.4.3 calls for matching NBXplorer or PostgreSQL versions, per UPDATING.md. Those stay at 2.6.10 and 18.4.

Version string: 2.4.3-rc.4, not 2.4.3-rc4

exver rejects a prerelease segment that mixes letters and digits — rc4 fails to parse at the 4, caught at compile time by ValidateExVer. The package version needs the dot, so it deliberately differs from the upstream Docker tag. Ordering is unaffected:

2.4.2:1  <  2.4.3-rc.4:0  <  2.4.3:0

Why 2.4.2:1 gets its own version file

2.4.2:1 carries the migration that raises the critical Lightning credential-rotation task, so it is spun off to startos/versions/v2.4.2_1.ts rather than bumped in place. Dumping both candidate graphs shows why:

Range vertex into current Migration on that edge
Spun off (this PR) >=2.4.2:1 && <2.4.3-rc.4:0 users below route through 2.4.2:1, whose edge carries the migration
Bumped in place >=2.4.0:2 && <2.4.3-rc.4:0 none — one hop straight to current

Bumping in place would mean every user still on 2.4.0:2..2.4.2:0 reaches 2.4.3 in a single hop and silently skips the rotation task, with the update itself reporting success. The spun-off file is byte-identical to the previous current.ts apart from the export name.

Verified

  • tsc --noEmit clean; prettier clean
  • docker manifest inspect btcpayserver/btcpayserver-internal:2.4.3-rc4 resolves with linux/amd64 + linux/arm64, covering the manifest's declared arches
  • s9pk not built locally — left to CI

🤖 Generated with Claude Code

Security update. 2.4.3-rc4 is a prerelease: upstream publishes release
candidates to btcpayserver/btcpayserver-internal, and at packaging time
2.4.3 had no GitHub release, git tag, or changelog, so the pin changes
image repo as well as tag. Move it back to btcpayserver/btcpayserver
when the final release lands.

Two things the version string and file layout encode:

exver rejects a prerelease segment mixing letters and digits, so
upstream's 2.4.3-rc4 is written 2.4.3-rc.4:0 here. Ordering is
unaffected: 2.4.2:1 < 2.4.3-rc.4:0 < 2.4.3:0.

2.4.2:1 is spun off to its own version file rather than bumped in
place, because it carries the migration that raises the critical
Lightning credential-rotation task. Bumping in place would collapse
the range vertex into current to `>=2.4.0:2 && <2.4.3-rc.4:0` with no
migration on the edge, so every user still on 2.4.0:2..2.4.2:0 would
reach 2.4.3 in one hop and silently skip that task. As a declared
node, they route through it instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MattDHill
MattDHill merged commit 6766189 into master Aug 13, 2026
3 checks passed
@MattDHill
MattDHill deleted the chore/bump-btcpay-2.4.3-rc4 branch August 13, 2026 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant