Skip to content

Commit ebdc0e4

Browse files
authored
Merge pull request #620 from willcl-ark/vulnerable-nodes
add vulnerable nodes
2 parents 26ca399 + b6e4bc6 commit ebdc0e4

File tree

3 files changed

+115
-4
lines changed

3 files changed

+115
-4
lines changed

resources/charts/bitcoincore/templates/_helpers.tpl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@ Create the name of the service account to use
5858

5959

6060
{{/*
61-
Add network section heading in bitcoin.conf after v0.17.0
61+
Add network section heading in bitcoin.conf
62+
Always add for custom semver, check version for valid semver
6263
*/}}
6364
{{- define "bitcoincore.check_semver" -}}
64-
{{- $version := semverCompare ">=0.17.0" .Values.image.tag -}}
65-
{{- if $version -}}
65+
{{- $custom := contains "-" .Values.image.tag -}}
66+
{{- $newer := semverCompare ">=0.17.0" .Values.image.tag -}}
67+
{{- if or $newer $custom -}}
6668
[{{ .Values.chain }}]
6769
{{- end -}}
6870
{{- end -}}

resources/images/bitcoin/insecure/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ RUN --mount=type=cache,target=/ccache \
110110
&& ./autogen.sh \
111111
&& ./configure \
112112
LDFLAGS=-L`ls -d /opt/db*`/lib/ \
113-
CPPFLAGS="-g0 -I`ls -d /opt/db*`/include/ --param ggc-min-expand=1 --param ggc-min-heapsize=32768" \
113+
CPPFLAGS="-I`ls -d /opt/db*`/include/ --param ggc-min-expand=1 --param ggc-min-heapsize=32768" \
114114
--prefix=${BITCOIN_PREFIX} \
115115
${BUILD_ARGS} \
116116
${EXTRA_BUILD_ARGS} \

resources/images/bitcoin/insecure/build.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,112 @@ docker buildx build \
8787
--tag bitcoindevproject/bitcoin:0.16.1 \
8888
resources/images/bitcoin/insecure
8989
```
90+
91+
## unknown p2p message crash
92+
93+
Will crash when sent an "unknown" P2P message is received from a node using protocol version >= 70016
94+
95+
```bash
96+
docker buildx build \
97+
--platform linux/amd64,linux/armhf \
98+
--build-context bitcoin-src="." \
99+
--build-arg ALPINE_VERSION="3.20" \
100+
--build-arg BITCOIN_VERSION="28.1.1" \
101+
--build-arg EXTRA_PACKAGES="sqlite-dev" \
102+
--build-arg EXTRA_RUNTIME_PACKAGES="" \
103+
--build-arg REPO="willcl-ark/bitcoin" \
104+
--build-arg COMMIT_SHA="df1768325cca49bb867b7919675ae06c964b5ffa" \
105+
--tag bitcoindevproject/bitcoin:99.1.0-unknown-message \
106+
resources/images/bitcoin/insecure
107+
```
108+
109+
## invalid blocks crash
110+
111+
Will crash when sent an invalid block
112+
113+
```bash
114+
docker buildx build \
115+
--platform linux/amd64,linux/armhf \
116+
--build-context bitcoin-src="." \
117+
--build-arg ALPINE_VERSION="3.20" \
118+
--build-arg BITCOIN_VERSION="28.1.1" \
119+
--build-arg EXTRA_PACKAGES="sqlite-dev" \
120+
--build-arg EXTRA_RUNTIME_PACKAGES="" \
121+
--build-arg REPO="willcl-ark/bitcoin" \
122+
--build-arg COMMIT_SHA="f72bc595fc762c7afcbd156f4f84bf48f7ff4fdb" \
123+
--tag bitcoindevproject/bitcoin:99.1.0-invalid-blocks \
124+
resources/images/bitcoin/insecure
125+
```
126+
127+
## too many orphans crash
128+
129+
Will crash when we have 50 orphans in the orphanage
130+
131+
```bash
132+
docker buildx build \
133+
--platform linux/amd64,linux/armhf \
134+
--build-context bitcoin-src="." \
135+
--build-arg ALPINE_VERSION="3.20" \
136+
--build-arg BITCOIN_VERSION="28.1.1" \
137+
--build-arg EXTRA_PACKAGES="sqlite-dev" \
138+
--build-arg EXTRA_RUNTIME_PACKAGES="" \
139+
--build-arg REPO="willcl-ark/bitcoin" \
140+
--build-arg COMMIT_SHA="38aff9d695f5aa187fc3b75f08228248963372ee" \
141+
--tag bitcoindevproject/bitcoin:99.1.0-50-orphans \
142+
resources/images/bitcoin/insecure
143+
```
144+
145+
## full mempool crash
146+
147+
Will crash when we would normally trim the mempool size.
148+
Mempool set to 50MB by default.
149+
150+
```bash
151+
docker buildx build \
152+
--platform linux/amd64,linux/armhf \
153+
--build-context bitcoin-src="." \
154+
--build-arg ALPINE_VERSION="3.20" \
155+
--build-arg BITCOIN_VERSION="28.1.1" \
156+
--build-arg EXTRA_PACKAGES="sqlite-dev" \
157+
--build-arg EXTRA_RUNTIME_PACKAGES="" \
158+
--build-arg REPO="willcl-ark/bitcoin" \
159+
--build-arg COMMIT_SHA="d30f8112611c4732ccb01f0a0216eb7ed10e04a7" \
160+
--tag bitcoindevproject/bitcoin:99.1.0-no-mp-trim\
161+
resources/images/bitcoin/insecure
162+
```
163+
164+
## disabled opcodes crash
165+
166+
Will crash when processing a disabled opcode
167+
168+
```bash
169+
docker buildx build \
170+
--platform linux/amd64,linux/armhf \
171+
--build-context bitcoin-src="." \
172+
--build-arg ALPINE_VERSION="3.20" \
173+
--build-arg BITCOIN_VERSION="28.1.1" \
174+
--build-arg EXTRA_PACKAGES="sqlite-dev" \
175+
--build-arg EXTRA_RUNTIME_PACKAGES="" \
176+
--build-arg REPO="willcl-ark/bitcoin" \
177+
--build-arg COMMIT_SHA="51e068ed42727eee08af62e09eb5789d8b910f61" \
178+
--tag bitcoindevproject/bitcoin:99.1.0-disabled-opcodes \
179+
resources/images/bitcoin/insecure
180+
```
181+
182+
## crash when 5k inv messages received
183+
184+
Will crash when we receive a total of 5k `INV` p2p messages are received from a single peer.
185+
186+
```bash
187+
docker buildx build \
188+
--platform linux/amd64,linux/armhf \
189+
--build-context bitcoin-src="." \
190+
--build-arg ALPINE_VERSION="3.20" \
191+
--build-arg BITCOIN_VERSION="28.1.1" \
192+
--build-arg EXTRA_PACKAGES="sqlite-dev" \
193+
--build-arg EXTRA_RUNTIME_PACKAGES="" \
194+
--build-arg REPO="willcl-ark/bitcoin" \
195+
--build-arg COMMIT_SHA="3e1ce7de0d19f791315fa87e0d29504ee0c80fe8" \
196+
--tag bitcoindevproject/bitcoin:99.1.0-5k-inv \
197+
resources/images/bitcoin/insecure
198+
```

0 commit comments

Comments
 (0)