diff --git a/.github/workflows/x86.yml b/.github/workflows/x86.yml
index bf4e9508f877303bd4e58ba0e6225c1a089c13b1..2f4a89389a0013592ed7f6a197fa1aa613a5e144 100644
--- a/.github/workflows/x86.yml
+++ b/.github/workflows/x86.yml
@@ -66,20 +66,22 @@ jobs:
         if: ${{ matrix.os == 'ubuntu-latest' }}
         working-directory: libhermit-rs
         run: cargo test --lib --target x86_64-unknown-linux-gnu
-      - name: Build loader
-        run: cargo xtask build --arch x86_64 --release
-        working-directory: loader
+      - name: Download loader
+        uses: dsaltares/fetch-gh-release-asset@1.0.0
+        with:
+          repo: hermitcore/rusty-loader
+          file: rusty-loader-x86_64
       - name: Test dev profile
         run: |
           qemu-system-x86_64 -display none -smp 1 -m 128M -serial stdio \
             -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr \
             -device isa-debug-exit,iobase=0xf4,iosize=0x04 \
-            -kernel loader/target/x86_64/release/rusty-loader \
+            -kernel rusty-loader-x86_64 \
             -initrd target/x86_64-unknown-hermit/debug/rusty_demo
       - name: Integration tests (ubuntu)
         working-directory: libhermit-rs
         if: ${{ matrix.os == 'ubuntu-latest' }}
-        run: cargo test --tests --no-fail-fast -- --bootloader_path=../loader/target/x86_64/release/rusty-loader
+        run: cargo test --tests --no-fail-fast -- --bootloader_path=rusty-loader-x86_64
         continue-on-error: true
       - name: Build release profile
         run: cargo build -Zbuild-std=core,alloc,std,panic_abort -Zbuild-std-features=compiler-builtins-mem --target x86_64-unknown-hermit --release
@@ -88,7 +90,7 @@ jobs:
           qemu-system-x86_64 -display none -smp 1 -m 128M -serial stdio \
             -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr \
             -device isa-debug-exit,iobase=0xf4,iosize=0x04 \
-            -kernel loader/target/x86_64/release/rusty-loader \
+            -kernel rusty-loader-x86_64 \
             -initrd target/x86_64-unknown-hermit/release/rusty_demo
       - name: Build minimal profile
         if: ${{ matrix.os == 'ubuntu-latest' }}
@@ -103,7 +105,7 @@ jobs:
             -M microvm,x-option-roms=off,pit=off,pic=off,rtc=on \
             -global virtio-mmio.force-legacy=on -nodefaults -no-user-config \
             -display none -smp 1 -m 64M -serial stdio \
-            -kernel loader/target/x86_64/release/rusty-loader \
+            -kernel rusty-loader-x86_64 \
             -initrd target/x86_64-unknown-hermit/release/hello_world \
             -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr \
             -device isa-debug-exit,iobase=0xf4,iosize=0x04 \
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index dc78f78daa8a473f5fc3c31d7dfe5a8def565937..4e2eb5710076037562e61cfeba3b07ae485913fc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -92,25 +92,25 @@ test:qemu:
         -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand
         -device isa-debug-exit,iobase=0xf4,iosize=0x04
         -display none -m 64M -serial stdio -enable-kvm
-        -kernel /usr/local/bin/rusty-loader
+        -kernel /usr/local/bin/rusty-loader-x86_64
         -initrd rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo
      - qemu-system-x86_64 -smp 2
         -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand
         -device isa-debug-exit,iobase=0xf4,iosize=0x04
         -display none -m 64M -serial stdio -enable-kvm
-        -kernel /usr/local/bin/rusty-loader
+        -kernel /usr/local/bin/rusty-loader-x86_64
         -initrd rusty-hermit/target/x86_64-unknown-hermit/debug/rusty_demo
      - qemu-system-x86_64 -smp 1
         -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand
         -device isa-debug-exit,iobase=0xf4,iosize=0x04
         -display none -m 64M -serial stdio -enable-kvm
-        -kernel /usr/local/bin/rusty-loader
+        -kernel /usr/local/bin/rusty-loader-x86_64
         -initrd rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo
      - qemu-system-x86_64 -smp 2
         -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand
         -device isa-debug-exit,iobase=0xf4,iosize=0x04
         -display none -m 64M -serial stdio -enable-kvm
-        -kernel /usr/local/bin/rusty-loader
+        -kernel /usr/local/bin/rusty-loader-x86_64
         -initrd rusty-hermit/target/x86_64-unknown-hermit/release/rusty_demo
    tags:
      - privileged
diff --git a/Dockerfile b/Dockerfile
index cc66f6f32b3763e3a096bb42d508f49ee572cb0d..5a7d543dface5797b259b0b1ee2e5eb4a53a22f4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -40,18 +40,6 @@ FROM rust:bullseye as stable-deps
 RUN set -eux; \
     cargo install uhyve;
 
-# Build dependencies with libhermit-rs' toolchain channel
-FROM hermit-toolchain as hermit-deps
-RUN set -eux; \
-    apt-get update; \
-    apt-get install -y --no-install-recommends \
-        nasm \
-    ; \
-    rm -rf /var/lib/apt/lists/*; \
-    git clone https://github.com/hermitcore/rusty-loader.git; \
-    cd rusty-loader; \
-    cargo xtask build --arch x86_64 --release;
-
 # Install dependencies
 FROM hermit-toolchain as ci-runner
 RUN set -eux; \
@@ -63,5 +51,6 @@ RUN set -eux; \
         qemu-system-x86 \
     ; \
     rm -rf /var/lib/apt/lists/*;
+RUN set -eux; \
+    wget -P /usr/local/bin "https://github.com/hermitcore/rusty-loader/releases/download/v0.3.0/rusty-loader-x86_64";
 COPY --from=stable-deps $CARGO_HOME/bin/uhyve $CARGO_HOME/bin/uhyve
-COPY --from=hermit-deps rusty-loader/target/x86_64/release/rusty-loader /usr/local/bin/rusty-loader