From caef059bea953cf9e1695633191928021697f4cb Mon Sep 17 00:00:00 2001 From: willcl-ark Date: Thu, 26 Sep 2024 01:09:05 +0100 Subject: [PATCH] add vulnerable nodes --- .../charts/bitcoincore/templates/_helpers.tpl | 8 +- resources/images/bitcoin/insecure/build.md | 108 ++++++++++++++++++ 2 files changed, 113 insertions(+), 3 deletions(-) diff --git a/resources/charts/bitcoincore/templates/_helpers.tpl b/resources/charts/bitcoincore/templates/_helpers.tpl index dc3bf9ce6..26258b5de 100644 --- a/resources/charts/bitcoincore/templates/_helpers.tpl +++ b/resources/charts/bitcoincore/templates/_helpers.tpl @@ -58,11 +58,13 @@ Create the name of the service account to use {{/* -Add network section heading in bitcoin.conf after v0.17.0 +Add network section heading in bitcoin.conf +Always add for custom semver, check version for valid semver */}} {{- define "bitcoincore.check_semver" -}} -{{- $version := semverCompare ">=0.17.0" .Values.image.tag -}} -{{- if $version -}} +{{- $custom := contains "-" .Values.image.tag -}} +{{- $newer := semverCompare ">=0.17.0" .Values.image.tag -}} +{{- if or $newer $custom -}} [{{ .Values.chain }}] {{- end -}} {{- end -}} diff --git a/resources/images/bitcoin/insecure/build.md b/resources/images/bitcoin/insecure/build.md index 68502d51b..4f6c35379 100644 --- a/resources/images/bitcoin/insecure/build.md +++ b/resources/images/bitcoin/insecure/build.md @@ -87,3 +87,111 @@ docker buildx build \ --tag bitcoindevproject/bitcoin:0.16.1 \ resources/images/bitcoin/insecure ``` + +## unknown p2p message crash + +Will crash when sent an "unknown" P2P message is received from a node using protocol version >= 70016 + +```bash +docker buildx build \ + --platform linux/amd64,linux/armhf \ + --build-context bitcoin-src="." \ + --build-arg ALPINE_VERSION="3.20" \ + --build-arg BITCOIN_VERSION="28.1.1" \ + --build-arg EXTRA_PACKAGES="sqlite-dev" \ + --build-arg EXTRA_RUNTIME_PACKAGES="" \ + --build-arg REPO="willcl-ark/bitcoin" \ + --build-arg COMMIT_SHA="df1768325cca49bb867b7919675ae06c964b5ffa" \ + --tag bitcoindevproject/bitcoin:99.1.0-unknown-message \ + resources/images/bitcoin/insecure +``` + +## invalid blocks crash + +Will crash when sent an invalid block + +```bash +docker buildx build \ + --platform linux/amd64,linux/armhf \ + --build-context bitcoin-src="." \ + --build-arg ALPINE_VERSION="3.20" \ + --build-arg BITCOIN_VERSION="28.1.1" \ + --build-arg EXTRA_PACKAGES="sqlite-dev" \ + --build-arg EXTRA_RUNTIME_PACKAGES="" \ + --build-arg REPO="willcl-ark/bitcoin" \ + --build-arg COMMIT_SHA="dae4caab34b6c5c58324b1356897953c99a6e920" \ + --tag bitcoindevproject/bitcoin:99.1.0-invalid-blocks \ + resources/images/bitcoin/insecure +``` + +## too many orphans crash + +Will crash when we have 50 orphans in the orphanage + +```bash +docker buildx build \ + --platform linux/amd64,linux/armhf \ + --build-context bitcoin-src="." \ + --build-arg ALPINE_VERSION="3.20" \ + --build-arg BITCOIN_VERSION="28.1.1" \ + --build-arg EXTRA_PACKAGES="sqlite-dev" \ + --build-arg EXTRA_RUNTIME_PACKAGES="" \ + --build-arg REPO="willcl-ark/bitcoin" \ + --build-arg COMMIT_SHA="38aff9d695f5aa187fc3b75f08228248963372ee" \ + --tag bitcoindevproject/bitcoin:99.1.0-50-orphans \ + resources/images/bitcoin/insecure +``` + +## full mempool crash + +Will crash when we would normally trim the mempool size + +```bash +docker buildx build \ + --platform linux/amd64,linux/armhf \ + --build-context bitcoin-src="." \ + --build-arg ALPINE_VERSION="3.20" \ + --build-arg BITCOIN_VERSION="28.1.1" \ + --build-arg EXTRA_PACKAGES="sqlite-dev" \ + --build-arg EXTRA_RUNTIME_PACKAGES="" \ + --build-arg REPO="willcl-ark/bitcoin" \ + --build-arg COMMIT_SHA="f9b6fb7fdb586a57945a835fe228b9eabb137f1e" \ + --tag bitcoindevproject/bitcoin:99.1.0-no-mp-trim\ + resources/images/bitcoin/insecure +``` + +## disabled opcodes crash + +Will crash when processing a disabled opcode + +```bash +docker buildx build \ + --platform linux/amd64,linux/armhf \ + --build-context bitcoin-src="." \ + --build-arg ALPINE_VERSION="3.20" \ + --build-arg BITCOIN_VERSION="28.1.1" \ + --build-arg EXTRA_PACKAGES="sqlite-dev" \ + --build-arg EXTRA_RUNTIME_PACKAGES="" \ + --build-arg REPO="willcl-ark/bitcoin" \ + --build-arg COMMIT_SHA="51e068ed42727eee08af62e09eb5789d8b910f61" \ + --tag bitcoindevproject/bitcoin:99.1.0-disabled-opcodes \ + resources/images/bitcoin/insecure +``` + +## crash when 5k inv messages received + +Will crash when we receive a total of 5k `INV` p2p messages are received from a single peer. + +```bash +docker buildx build \ + --platform linux/amd64,linux/armhf \ + --build-context bitcoin-src="." \ + --build-arg ALPINE_VERSION="3.20" \ + --build-arg BITCOIN_VERSION="28.1.1" \ + --build-arg EXTRA_PACKAGES="sqlite-dev" \ + --build-arg EXTRA_RUNTIME_PACKAGES="" \ + --build-arg REPO="willcl-ark/bitcoin" \ + --build-arg COMMIT_SHA="3e1ce7de0d19f791315fa87e0d29504ee0c80fe8" \ + --tag bitcoindevproject/bitcoin:99.1.0-5k-inv \ + resources/images/bitcoin/insecure +```