Skip to content

Host-built sample challenge not guaranteed to work in challenge container #384

Open

Description

@gkelly

In the local testing walkthrough there's an instruction to build the challenge binary using the host toolchain:

make -C challenge

However, my Ubuntu 22.04 host builds a binary with a different glibc version requirement and this results in the challenge not running in the container:

[I][2022-08-20T20:44:18+0000] Executing '/home/user/chal' for '[STANDALONE MODE]'
/home/user/chal: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/user/chal)

Activity

  1. sroettger commented on Aug 22, 2022

    @sroettger
    Collaborator

    Yeah, for the GoogleCTF we solved this by building all challenge binaries in a Dockerfile themselves:
    https://github.com/google/google-ctf/blob/master/2021/quals/kctf/challenge-templates/pwn/challenge/Makefile

    We should probably upstream that change. The original motivation for it was to allow anyone to rebuild all challenge binaries without depending on certain packages on the host.

  2. sroettger commented on Aug 22, 2022

    @sroettger
    Collaborator
  3. sirdarckcat commented on Aug 22, 2022

    @sirdarckcat
    Member

    I feel it's a little bit weird it's in a Makefile though (I would expect the Makefile to be called within the Dockerfile, not the other way around).

    We had some ideas about making all attachments "scratch" docker images iirc? Although I don't remember how we were planning to reference them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions