docker: revert idf from 5.4.3 back to 5.4.0 in jade_builder_base
What changed, and why it matters
This commit rolls back the software framework (Espressif IDF) used to build Blockstream Jade hardware wallets from version 5.4.3 to 5.4.0. The stated reason is that 5.4.1 through 5.4.3 introduce Bluetooth bugs that break Bluetooth on older 'v2' Jade devices. The team considers the newer bug-fix releases too risky to ship because the upstream framework's own version history is broken, making it hard to isolate which changes cause the Bluetooth problems. This is a defensive, risk-reduction change rather than a fix for an active exploit.
Treat this as a risk-mitigation change, not a confirmed vulnerability patch. Users and auditors should verify that the reverted 5.4.0 build plus Jade BLE reliability changes pass the project's Bluetooth/ hardware-wallet functional tests. Monitor upstream ESP-IDF 5.4.x BLE fixes and plan the next-cycle bump with proper regression testing and upstream bug reporting.
Security signals we found
Downgrade of third-party framework version due to reported Bluetooth regressions
Commit message explicitly calls out BLE bugs in newer bug-fix releases
Mentions inability to use git bisection in upstream 5.4 branches, complicating root-cause analysis
No CVE, advisory, or independent researcher attribution present in commit or supplied references
Evidence from the diff
The commit changes Docker base image hashes and build arguments so the firmware is built against ESP-IDF v5.4.0 (commit 67c1de1eebe095d554d281952fde63c16ee2dca0) instead of v5.4.3 (ea1c174c1cbb7348bd8ba0ff1eb306246938dd80). It also updates dependency lock files for both esp32 and esp32s3 targets to report idf version 5.4.0. The commit message says 5.4.1+ BLE changes break Bluetooth handling on v2 devices, that several BLE bugs have been identified and can be locally patched, but that the project is reverting to 5.4.0 plus Jade-specific BLE reliability improvements for this release cycle.
Changed components
Dockerfile base image selectionESP-IDF version pinning (v5.4.3 -> v5.4.0)Bluetooth/BLE stack on Jade v2 devicesdependencies.lock.esp32 and dependencies.lock.esp32s3Inspect captured patch +6 / −6
diff --git a/Dockerfile b/Dockerfile
index 7ac5eab..288d2e4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,11 +12,11 @@
#FROM espressif/idf:release-v5.4@sha256:11441b20e4a87dc722ad6d1ef5a920cf8901a62581d8c85a4299a4c0f142e1a3
# See gitlab/docker.yml to build this image yourself.
-FROM blockstream/jade_builder_base@sha256:3d0c9d275f05e849b0caf4d5846c88c57fbc7f9b74c763693d8dd92fee13987c
+FROM blockstream/jade_builder_base@sha256:6f64874834696a7af1f77019ab2aee400d351146bc0de8bbfc9f5b30bf8f7cf9
# These ARGs are easily parseable (eg by HWI)
-ARG ESP_IDF_BRANCH=v5.4.3
-ARG ESP_IDF_COMMIT=ea1c174c1cbb7348bd8ba0ff1eb306246938dd80
+ARG ESP_IDF_BRANCH=v5.4
+ARG ESP_IDF_COMMIT=67c1de1eebe095d554d281952fde63c16ee2dca0
COPY requirements.txt /
diff --git a/dependencies.lock.esp32 b/dependencies.lock.esp32
index 7f168c9..4136b33 100644
--- a/dependencies.lock.esp32
+++ b/dependencies.lock.esp32
@@ -101,7 +101,7 @@ dependencies:
idf:
source:
type: idf
- version: 5.4.3
+ version: 5.4.0
direct_dependencies:
- espressif/button
- espressif/cbor
diff --git a/dependencies.lock.esp32s3 b/dependencies.lock.esp32s3
index fb4d18c..10661a9 100644
--- a/dependencies.lock.esp32s3
+++ b/dependencies.lock.esp32s3
@@ -153,7 +153,7 @@ dependencies:
idf:
source:
type: idf
- version: 5.4.3
+ version: 5.4.0
direct_dependencies:
- espressif/button
- espressif/cbor
diff --git a/gitlab/docker.yml b/gitlab/docker.yml
index 4c90634..899d77c 100644
--- a/gitlab/docker.yml
+++ b/gitlab/docker.yml
@@ -22,7 +22,7 @@ build_jade_builder_base:
- wget https://github.com/espressif/esp-idf/raw/refs/tags/v5.4.3/tools/docker/entrypoint.sh
- docker build
--network=host
- --build-arg IDF_CLONE_BRANCH_OR_TAG=v5.4.3
+ --build-arg IDF_CLONE_BRANCH_OR_TAG=v5.4
--build-arg IDF_CLONE_SHALLOW=1
--build-arg IDF_INSTALL_TARGETS=esp32,esp32s3
-t blockstream/jade_builder_base:${CI_COMMIT_SHA}
Why this scored 35/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.