assetnote / kiterunner

Contextual Content Discovery Tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kiterunner stacktrace when running a large list of hosts with a large wordlist

infosec-au opened this issue · comments

commented

When using the brute mode with the following command:

732 hosts with 233617 line count wordlist.

ulimit -n 20000
./kr brute epic2 -x 20 -j 50 -w ../ffuf-brute/final_wordlist.txt -D -e html --fail-status-codes 404

After some time, Kiterunner exits and produces the following stacktrace:

goroutine 1159 [chan send]:
github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget.func3(0xc005130430, 0xb, 0xc0002b2300, 0xc000079930, 0xc0003205a0, 0xc005132780, 0xc0002f6090)
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:143 +0x4d4
created by github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:100 +0x285

goroutine 1160 [sleep]:
time.Sleep(0x2540be400)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/time.go:188 +0xbf
github.com/valyala/fasthttp.(*HostClient).connsCleaner(0xc00512d380)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1659 +0x2ff
created by github.com/valyala/fasthttp.(*HostClient).acquireConn
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1549 +0x1da

goroutine 2326 [sleep]:
time.Sleep(0x2540be400)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/time.go:188 +0xbf
github.com/valyala/fasthttp.(*HostClient).connsCleaner(0xc0070fcc00)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1659 +0x2ff
created by github.com/valyala/fasthttp.(*HostClient).acquireConn
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1549 +0x1da

goroutine 18291443 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2ac16e0, 0xc0e2465200, 0xc0e2aa09c0, 0xc0e2aa0960)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291312 [runnable]:
internal/poll.runtime_pollWait(0x7f27274e6080, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e18a1898, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e18a1880, 0xc0e296e000, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e18a1880, 0xc0e296e000, 0x205, 0x205, 0x203038, 0x58, 0xc042243c00)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc10bb4e0d8, 0xc0e296e000, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e29615a0, 0xc0e296e000, 0x205, 0x205, 0xc0e296e000, 0x0, 0xc00db896a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e295c600, 0xde2360, 0xc0e29615a0, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e295c380, 0xde3060, 0xc10bb4e0d8, 0x5, 0xc10bb4e0d8, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e295c380, 0xc0e272cd00, 0x1d7, 0x1e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e295c380, 0xc0e2773516, 0xc0e2773500, 0x1d2, 0x300)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e295c380, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e295c380, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc108909260, 0xc0e295c380)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 18291356 [runnable]:
internal/poll.runtime_pollWait(0x7f27278d4fe8, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e25ce618, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e25ce600, 0xc0e2e1b440, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e25ce600, 0xc0e2e1b440, 0x205, 0x205, 0x203038, 0x58, 0xc000600000)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000506388, 0xc0e2e1b440, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e2e113e0, 0xc0e2e1b440, 0x205, 0x205, 0xc0e2e1b440, 0x0, 0xc00dead6a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e2e12d00, 0xde2360, 0xc0e2e113e0, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e2e12a80, 0xde3060, 0xc000506388, 0x5, 0xc000506388, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e2e12a80, 0xc0e23e4900, 0x1d3, 0x1e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e2e12a80, 0xc0e2e2e016, 0xc0e2e2e000, 0x1ce, 0x300)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e2e12a80, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e2e12a80, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc033548060, 0xc0e2e12a80)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 3228 [sleep]:
time.Sleep(0x2540be400)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/time.go:188 +0xbf
github.com/valyala/fasthttp.(*HostClient).connsCleaner(0xc00f4e8a80)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1659 +0x2ff
created by github.com/valyala/fasthttp.(*HostClient).acquireConn
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1549 +0x1da

goroutine 1484 [sleep]:
time.Sleep(0x2540be400)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/time.go:188 +0xbf
github.com/valyala/fasthttp.(*HostClient).connsCleaner(0xc00dc75380)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1659 +0x2ff
created by github.com/valyala/fasthttp.(*HostClient).acquireConn
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1549 +0x1da

goroutine 18291280 [runnable]:
internal/poll.runtime_pollWait(0x7f2726e5ce18, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e1e9f118, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e1e9f100, 0xc0e2864fc0, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e1e9f100, 0xc0e2864fc0, 0x205, 0x205, 0x203038, 0x58, 0xc000192000)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc00128af20, 0xc0e2864fc0, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e28624c0, 0xc0e2864fc0, 0x205, 0x205, 0xc0e2864fc0, 0x0, 0xc00e9796a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e24d3b00, 0xde2360, 0xc0e28624c0, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e24d3880, 0xde3060, 0xc00128af20, 0x5, 0xc00128af20, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e24d3880, 0xc0e24d8500, 0x1d7, 0x1e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e24d3880, 0xc0e24d6f16, 0xc0e24d6f00, 0x1d2, 0x300)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e24d3880, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e24d3880, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc0a80d1200, 0xc0e24d3880)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 18291328 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2bd8c00, 0xc0e25cea00, 0xc0e2b9e660, 0xc0e2b9e600)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291279 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e285ea80, 0xc0e18a1f80, 0xc0e2848660, 0xc0e2848600)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 3144 [sleep]:
time.Sleep(0x2540be400)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/time.go:188 +0xbf
github.com/valyala/fasthttp.(*HostClient).connsCleaner(0xc00f4e8900)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1659 +0x2ff
created by github.com/valyala/fasthttp.(*HostClient).acquireConn
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1549 +0x1da

goroutine 3227 [chan send]:
github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget.func3(0xc00a51ead0, 0xb, 0xc0002b2300, 0xc00017e680, 0xc000320c00, 0xc00a552a80, 0xc0002f6090)
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:143 +0x4d4
created by github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:100 +0x285

goroutine 2079 [chan send]:
github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget.func3(0xc007cd65d0, 0xb, 0xc0002b2300, 0xc000079c70, 0xc000320720, 0xc00e598000, 0xc0002f6090)
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:143 +0x4d4
created by github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:100 +0x285

goroutine 18291283 [runnable]:
internal/poll.runtime_pollWait(0x7f2726f31448, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e1c86e18, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e1c86e00, 0xc0e2927500, 0x1395, 0x1395, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e1c86e00, 0xc0e2927500, 0x1395, 0x1395, 0x203038, 0x1824cea5cb6c7fde, 0xeda59954d59de281)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc007178d60, 0xc0e2927500, 0x1395, 0x1395, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e294e8a0, 0xc0e2927500, 0x1395, 0x1395, 0xe84014a3facd765b, 0xc0d6e1b708, 0xc0d6e1b440)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e26a4600, 0xde2360, 0xc0e294e8a0, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e26a4380, 0xde3060, 0xc007178d60, 0x5, 0xc007178d60, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e26a4380, 0xc0e1c86e01, 0xc0e4130000, 0x7e)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readChangeCipherSpec(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:580
crypto/tls.(*clientHandshakeState).readFinished(0xc0d6e1bd68, 0xc0e26a44b5, 0xc, 0xc, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:748 +0x53
crypto/tls.(*clientHandshakeState).handshake(0xc0d6e1bd68, 0xc0e290fcd0, 0x4)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:436 +0x673
crypto/tls.(*Conn).clientHandshake(0xc0e26a4380, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:219 +0x754
crypto/tls.(*Conn).Handshake(0xc0e26a4380, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc0312625a0, 0xc0e26a4380)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 18291409 [runnable]:
internal/poll.runtime_pollWait(0x7f27274fb2f0, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e18a1a98, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e18a1a80, 0xc0e2865b00, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e18a1a80, 0xc0e2865b00, 0x205, 0x205, 0x203038, 0x58, 0xc000600000)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc00128af28, 0xc0e2865b00, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e28626a0, 0xc0e2865b00, 0x205, 0x205, 0xc0e2865b00, 0x0, 0xc00e9676a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e24d3e80, 0xde2360, 0xc0e28626a0, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e24d3c00, 0xde3060, 0xc00128af28, 0x5, 0xc00128af28, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e24d3c00, 0xc0e2800400, 0x11d, 0x120)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e24d3c00, 0xc0e20c7916, 0xc0e20c7980, 0x118, 0x180)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e24d3c00, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e24d3c00, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc030661500, 0xc0e24d3c00)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 18291391 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2c26ae0, 0xc0e26fc600, 0xc0e26d7320, 0xc0e26d72c0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 2080 [chan send]:
github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget.func3(0xc000594010, 0xb, 0xc0002b2300, 0xc000079a00, 0xc000320600, 0xc00e598360, 0xc0002f6090)
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:143 +0x4d4
created by github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:100 +0x285

goroutine 18291417 [runnable]:
internal/poll.runtime_pollWait(0x7f2726f305c8, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e2464e18, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e2464e00, 0xc0e2c94900, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e2464e00, 0xc0e2c94900, 0x205, 0x205, 0x203038, 0x58, 0xc042243c00)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc00128af48, 0xc0e2c94900, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e28630e0, 0xc0e2c94900, 0x205, 0x205, 0xc0e2c94900, 0x0, 0xc00e9696a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e2870d00, 0xde2360, 0xc0e28630e0, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e2870a80, 0xde3060, 0xc00128af48, 0x5, 0xc00128af48, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e2870a80, 0xc0e24d8b00, 0x1d9, 0x1e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e2870a80, 0xc0e24d7b16, 0xc0e24d7b00, 0x1d4, 0x300)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e2870a80, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e2870a80, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc004e451a0, 0xc0e2870a80)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 1659366 [chan send]:
github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget.func3(0xc004e43234, 0xb, 0xc0002b2300, 0xc00017fd40, 0xc000320300, 0xc00dbac420, 0xc0002f6090)
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:143 +0x4d4
created by github.com/assetnote/kiterunner/pkg/kiterunner.handleTarget
        /home/runner/work/kiterunner/kiterunner/pkg/kiterunner/kiterunner.go:100 +0x285

goroutine 18291386 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2c11740, 0xc0e26fc200, 0xc0e26d6c60, 0xc0e26d6c00)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291395 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e297de00, 0xc0e1e9f900, 0xc0e2733a40, 0xc0e27339e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291441 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2ac0b40, 0xc0e2465100, 0xc0e2aa0720, 0xc0e2aa06c0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291411 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2872900, 0xc0e2876080, 0xc0e2848a20, 0xc0e28489c0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291344 [runnable]:
internal/poll.runtime_pollWait(0x7f27279b3298, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e18a1b98, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e18a1b80, 0xc0e2ab0900, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e18a1b80, 0xc0e2ab0900, 0x205, 0x205, 0x203038, 0x58, 0xc015207c00)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc006fcbd58, 0xc0e2ab0900, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e2aaa400, 0xc0e2ab0900, 0x205, 0x205, 0xc0e2ab0900, 0x0, 0xc00e2006a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e2987400, 0xde2360, 0xc0e2aaa400, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e2987180, 0xde3060, 0xc006fcbd58, 0x5, 0xc006fcbd58, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e2987180, 0xc0e1e60f00, 0x1d9, 0x1e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e2987180, 0xc0e27bb516, 0xc0e27bb500, 0x1d4, 0x300)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e2987180, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e2987180, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc0e8c13500, 0xc0e2987180)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

goroutine 18291428 [select]:
net.(*netFD).connect.func2(0xdf3960, 0xc0e2dca360, 0xc0e2a62180, 0xc0e2a5a840, 0xc0e2a5a7e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:118 +0xc5
created by net.(*netFD).connect
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_unix.go:117 +0x234

goroutine 18291325 [runnable]:
internal/poll.runtime_pollWait(0x7f2726fb6eb0, 0x72, 0xde4420)
        /opt/hostedtoolcache/go/1.15.11/x64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0e1c6bb98, 0x72, 0xde4400, 0x11ec798, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0e1c6bb80, 0xc0e2bab200, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0e1c6bb80, 0xc0e2bab200, 0x205, 0x205, 0x203038, 0x58, 0xc000192000)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc10b7d28a0, 0xc0e2bab200, 0x205, 0x205, 0x0, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/net/net.go:182 +0x8e
crypto/tls.(*atLeastReader).Read(0xc0e2ba0780, 0xc0e2bab200, 0x205, 0x205, 0xc0e2bab200, 0x0, 0xc00dc096a8)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:779 +0x62
bytes.(*Buffer).ReadFrom(0xc0e25d1400, 0xde2360, 0xc0e2ba0780, 0x40b725, 0xc3ab20, 0xcc3ee0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/bytes/buffer.go:204 +0xb1
crypto/tls.(*Conn).readFromUntil(0xc0e25d1180, 0xde3060, 0xc10b7d28a0, 0x5, 0xc10b7d28a0, 0x1000000caa9a0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:801 +0xf3
crypto/tls.(*Conn).readRecordOrCCS(0xc0e25d1180, 0xc0e1b6b600, 0x1d7, 0x1e0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:608 +0x115
crypto/tls.(*Conn).readRecord(...)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:576
crypto/tls.(*Conn).readHandshake(0xc0e25d1180, 0xc0e2bb6016, 0xc0e2bb6000, 0x1d2, 0x300)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:992 +0x6d
crypto/tls.(*Conn).clientHandshake(0xc0e25d1180, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/handshake_client.go:170 +0x2a7
crypto/tls.(*Conn).Handshake(0xc0e25d1180, 0x0, 0x0)
        /opt/hostedtoolcache/go/1.15.11/x64/src/crypto/tls/conn.go:1362 +0xc9
github.com/valyala/fasthttp.tlsClientHandshake.func1(0xc106f8ff80, 0xc0e25d1180)
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1896 +0x2b
created by github.com/valyala/fasthttp.tlsClientHandshake
        /home/runner/go/pkg/mod/github.com/valyala/fasthttp@v1.20.0/client.go:1895 +0x15b

Probably an out of memory issue. Apologies this is related to #11 where work is ongoing (pending my availability) :(