mirror of
https://github.com/trailofbits/buttercup
synced 2026-06-21 14:11:39 +00:00
Add instructions on evaluating challenges (#821)
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
|
||||
Follow the install instructions for the required dependencies:
|
||||
|
||||
* [Docker install guide](https://docs.docker.com/engine/install/ubuntu/)
|
||||
* [kubectl install guide](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
|
||||
* [helm install guide](https://helm.sh/docs/intro/install/):
|
||||
* [minikube install guide](https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fdebian+package)
|
||||
* Git LFS for some tests
|
||||
* [Docker install guide](https://docs.docker.com/engine/install/ubuntu/)
|
||||
* [kubectl install guide](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
|
||||
* [helm install guide](https://helm.sh/docs/intro/install/):
|
||||
* [minikube install guide](https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fdebian+package)
|
||||
* Git LFS for some tests
|
||||
|
||||
## Configuration
|
||||
|
||||
@@ -119,7 +119,7 @@ kubectl port-forward -n crs service/buttercup-competition-api 31323:1323
|
||||
```
|
||||
|
||||
```shell
|
||||
./orchestrator/scripts/round_2_sim.sh
|
||||
./orchestrator/scripts/challenge.sh
|
||||
```
|
||||
|
||||
Check that patches get submitted to the bundler.
|
||||
@@ -135,3 +135,7 @@ kubectl get pods -n crs
|
||||
|
||||
kubectl exec -it -n crs <pod-name> -- /bin/bash
|
||||
```
|
||||
|
||||
## Run Unscored Challenges
|
||||
|
||||
See [UNSCORED.md](UNSCORED.md)
|
||||
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
# Unscored
|
||||
|
||||
This document serves as instructions on running each challenge from the unscored rounds.
|
||||
|
||||
We want to verify that our CRS **still** finds vulnerabilities and patches we have ground-truth for.
|
||||
Consider this an extra validation apart from our unit and regression tests.
|
||||
|
||||
A list of vulnerabilities to find and patch is in this [spreadsheet](https://docs.google.com/spreadsheets/d/1y9Bj0ficMp6VvVz6bCgqYZPqv36l0Yhvxs0D_xuKgDY/edit).
|
||||
|
||||
## Setup
|
||||
|
||||
* Set up minikube locally on your machine (see [README.md](README.md)).
|
||||
|
||||
* `cd deployment && make up`
|
||||
|
||||
* Wait for all components to be `Running`: `watch 'kubectl get pods -n crs'`
|
||||
|
||||
* `kubectl port-forward -n crs service/buttercup-competition-api 31323:1323`
|
||||
|
||||
## Steps
|
||||
|
||||
* Run CRS on a challenge: `./orchestrator/scripts/challenge.sh`
|
||||
|
||||
* Validate Vulnerabilities and Patches
|
||||
* We found the correct vulnerability if the ground-truth patch fixes the vulnerability.
|
||||
* We found the correct patch if the ground-truth vulnerability gets fixed by the patch.
|
||||
|
||||
* Put the PoV blobs and Patch files into this [folder](https://drive.google.com/drive/folders/1nkOVqQJc1u15VFTboquax1CH_98RQGnS).
|
||||
|
||||
## Example
|
||||
|
||||
### Validate the correct Vulnerability and Patch
|
||||
|
||||
```shell
|
||||
git clone git@github.com:aixcc-finals/example-libpng.git
|
||||
cd example-libpng/
|
||||
git checkout challenges/lp-delta-01
|
||||
cd ../
|
||||
|
||||
git clone git@github.com:aixcc-finals/oss-fuzz-aixcc.git
|
||||
cd oss-fuzz-aixcc/
|
||||
git checkout challenge-state/lp-delta-01
|
||||
|
||||
# Build fuzzers
|
||||
python3 infra/helper.py build_image --pull libpng
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
python3 infra/helper.py check_build --sanitizer address --engine libfuzzer libpng
|
||||
|
||||
# Observe crash
|
||||
python3 infra/helper.py reproduce libpng libpng_read_fuzzer ../example-libpng/.aixcc/vulns/vuln_0/blobs/data.bin
|
||||
|
||||
# Rebuild with patch
|
||||
cd ../example-libpng/
|
||||
patch < .aixcc/vulns/vuln_0/patches/good_patch_1.diff
|
||||
cd ../oss-fuzz-aixcc/
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
|
||||
# Observe that crash is prevented
|
||||
python3 infra/helper.py reproduce libpng libpng_read_fuzzer ../example-libpng/.aixcc/vulns/vuln_0/blobs/data.bin
|
||||
|
||||
# Reset challenge
|
||||
cd ../example-libpng/
|
||||
git reset --hard HEAD
|
||||
cd ../oss-fuzz-aixcc/
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
```
|
||||
|
||||
### Submit challenge
|
||||
|
||||
* `./orchestrator/scripts/challenge.sh single lp_delta_01`
|
||||
|
||||
* `kubectl port-forward -n crs service/buttercup-redis-master 16379:6379`
|
||||
|
||||
* Access `redis` server
|
||||
|
||||
* `cd common/`
|
||||
* Note: need to run `uv venv` the first time and `uv sync` after changes have been made.
|
||||
* `source .venv/bin/activate`
|
||||
* `buttercup-util --help`
|
||||
|
||||
* `buttercup-util --redis_url redis://localhost:16379 list_queues`
|
||||
* `buttercup-util --redis_url redis://localhost:16379 read_queue tasks_ready_queue`
|
||||
|
||||
### Check if we found a Vulnerability and Patch
|
||||
|
||||
* Check for crashes: `buttercup-util --redis_url redis://localhost:16379 read_queue confirmed_vulnerabilities_queue`
|
||||
|
||||
* Copy crash input file:
|
||||
* `buttercup-util --redis_url redis://localhost:16379 read_queue confirmed_vulnerabilities_queue | grep "crash_input_path"`
|
||||
* `kubectl get pods -n crs | grep fuzzer`
|
||||
* `kubectl cp crs/<fuzzer-bot-name>:<crash-path> crash`
|
||||
|
||||
* Check for patches: `buttercup-util --redis_url redis://localhost:16379 read_queue patches_queue`
|
||||
|
||||
* Copy patch file:
|
||||
* `buttercup-util --redis_url redis://localhost:16379 read_queue patches_queue | grep "patch:" > patch.diff`
|
||||
* Modify `patch.diff`. In vim: `:%s/\\n/\r/g`
|
||||
|
||||
### Validate our Vulernability and Patch
|
||||
|
||||
```shell
|
||||
cd oss-fuzz-aixcc/
|
||||
|
||||
# Observe your crash
|
||||
python3 infra/helper.py reproduce libpng libpng_read_fuzzer ../common/crash
|
||||
|
||||
# Rebuild with correct patch
|
||||
cd ../example-libpng/
|
||||
patch < .aixcc/vulns/vuln_0/patches/good_patch_1.diff
|
||||
cd ../oss-fuzz-aixcc/
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
|
||||
# Observe if your crash is prevented
|
||||
python3 infra/helper.py reproduce libpng libpng_read_fuzzer ../common/crash
|
||||
|
||||
# Reset challenge
|
||||
cd ../example-libpng/
|
||||
git reset --hard HEAD
|
||||
cd ../oss-fuzz-aixcc/
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
|
||||
|
||||
# Observe the correct crash
|
||||
python3 infra/helper.py reproduce libpng libpng_read_fuzzer ../example-libpng/.aixcc/vulns/vuln_0/blobs/data.bin
|
||||
|
||||
# Rebuild with your patch
|
||||
cd ../example-libpng/
|
||||
patch < ../common/patch.diff
|
||||
cd ../oss-fuzz-aixcc/
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
|
||||
# Observe if the correct crash is prevented
|
||||
python3 infra/helper.py reproduce libpng libpng_read_fuzzer ../example-libpng/.aixcc/vulns/vuln_0/blobs/data.bin
|
||||
|
||||
# Reset challenge
|
||||
cd ../example-libpng/
|
||||
git reset --hard HEAD
|
||||
cd ../oss-fuzz-aixcc/
|
||||
python3 infra/helper.py build_fuzzers --clean --sanitizer address --engine libfuzzer libpng ../example-libpng/
|
||||
```
|
||||
|
||||
### Upload our Vulnerability and Patch files to drive folder for future reference (above).
|
||||
@@ -7,43 +7,7 @@ hours=$((60 * $minutes))
|
||||
full_set_duration=$((24 * $hours))
|
||||
delta_set_duration=$((8 * $hours))
|
||||
|
||||
declare -A freerdp_full=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-freerdp.git"
|
||||
["challenge_repo_head_ref"]="challenges/fp-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/fp-full-01"
|
||||
["fuzz_tooling_project_name"]="freerdp"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A libxml2_full=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_head_ref"]="challenges/lx-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lx-full-01"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A libxml2_full_updated=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_head_ref"]="challenges/lx-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="aixcc-afc"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A sqlite_full=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-sqlite3.git"
|
||||
["challenge_repo_head_ref"]="challenges/sq-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/sq-full-01"
|
||||
["fuzz_tooling_project_name"]="sqlite3"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A commons_compress_full=(
|
||||
declare -A cc_full_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-commons-compress.git"
|
||||
["challenge_repo_head_ref"]="challenges/cc-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
@@ -52,104 +16,7 @@ declare -A commons_compress_full=(
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A zookeeper_full=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-zookeeper.git"
|
||||
["challenge_repo_head_ref"]="challenges/zk-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/zk-full-01"
|
||||
["fuzz_tooling_project_name"]="zookeeper"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A dropbear_full=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-dropbear.git"
|
||||
["challenge_repo_head_ref"]="challenges/db-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/db-full-01"
|
||||
["fuzz_tooling_project_name"]="dropbear"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A freerdp_delta_1=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-freerdp.git"
|
||||
["challenge_repo_base_ref"]="a92cc0f3ebc3d3f4cf5b6097920a391e9b5fcfcf"
|
||||
["challenge_repo_head_ref"]="challenges/fp-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/fp-delta-01"
|
||||
["fuzz_tooling_project_name"]="freerdp"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A libxml2_delta_2=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_base_ref"]="0f876b983249cd3fb32b53d405f5985e83d8c3bd"
|
||||
["challenge_repo_head_ref"]="challenges/lx-delta-02"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lx-delta-02"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A integration_test_delta_1=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/integration-test.git"
|
||||
["challenge_repo_base_ref"]="4a714359c60858e3821bd478dc846de1d04dc977"
|
||||
["challenge_repo_head_ref"]="challenges/integration-test-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/integration-test-delta-01"
|
||||
["fuzz_tooling_project_name"]="integration-test"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A integration_test_full=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/integration-test.git"
|
||||
["challenge_repo_head_ref"]="challenges/integration-test-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/integration-test-delta-01"
|
||||
["fuzz_tooling_project_name"]="integration-test"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A libpng_delta_1=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/example-libpng.git"
|
||||
["challenge_repo_base_ref"]="5bf8da2d7953974e5dfbd778429c3affd461f51a"
|
||||
["challenge_repo_head_ref"]="challenges/lp-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lp-delta-01"
|
||||
["fuzz_tooling_project_name"]="libpng"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A sqlite_delta_1=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-sqlite3.git"
|
||||
["challenge_repo_base_ref"]="6a3e7f57f00f0a2b6b89b0db7990e3df47175372"
|
||||
["challenge_repo_head_ref"]="challenges/sq-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/sq-delta-01"
|
||||
["fuzz_tooling_project_name"]="sqlite3"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A libxml2_delta_1=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_base_ref"]="39ce264d546f93a0ddb7a1d7987670b8b905c165"
|
||||
["challenge_repo_head_ref"]="challenges/lx-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lx-delta-01"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A zookeeper_delta_1=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-zookeeper.git"
|
||||
["challenge_repo_base_ref"]="f6f34f6d5b6d67205c34de617a0b99fe11e3d323"
|
||||
["challenge_repo_head_ref"]="challenges/zk-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/zk-delta-01"
|
||||
["fuzz_tooling_project_name"]="zookeeper"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A commons_compress_delta_2=(
|
||||
declare -A cc_delta_02=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-commons-compress.git"
|
||||
["challenge_repo_base_ref"]="154edd0066d1aaf18daafb88253cacbf39017d61"
|
||||
["challenge_repo_head_ref"]="challenges/cc-delta-02"
|
||||
@@ -159,7 +26,7 @@ declare -A commons_compress_delta_2=(
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A commons_compress_delta_3=(
|
||||
declare -A cc_delta_03=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-commons-compress.git"
|
||||
["challenge_repo_base_ref"]="6e608498013784abb6878cad7906c2ddc41e45f1"
|
||||
["challenge_repo_head_ref"]="challenges/cc-delta-03"
|
||||
@@ -169,6 +36,130 @@ declare -A commons_compress_delta_3=(
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A db_full_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-dropbear.git"
|
||||
["challenge_repo_head_ref"]="challenges/db-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/db-full-01"
|
||||
["fuzz_tooling_project_name"]="dropbear"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A fp_full_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-freerdp.git"
|
||||
["challenge_repo_head_ref"]="challenges/fp-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/fp-full-01"
|
||||
["fuzz_tooling_project_name"]="freerdp"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A fp_delta_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-freerdp.git"
|
||||
["challenge_repo_base_ref"]="a92cc0f3ebc3d3f4cf5b6097920a391e9b5fcfcf"
|
||||
["challenge_repo_head_ref"]="challenges/fp-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/fp-delta-01"
|
||||
["fuzz_tooling_project_name"]="freerdp"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A integration_test_delta_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/integration-test.git"
|
||||
["challenge_repo_base_ref"]="4a714359c60858e3821bd478dc846de1d04dc977"
|
||||
["challenge_repo_head_ref"]="challenges/integration-test-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/integration-test-delta-01"
|
||||
["fuzz_tooling_project_name"]="integration-test"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A lp_delta_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/example-libpng.git"
|
||||
["challenge_repo_base_ref"]="5bf8da2d7953974e5dfbd778429c3affd461f51a"
|
||||
["challenge_repo_head_ref"]="challenges/lp-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lp-delta-01"
|
||||
["fuzz_tooling_project_name"]="libpng"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A lx_full_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_head_ref"]="challenges/lx-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lx-full-01"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A lx_delta_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_base_ref"]="39ce264d546f93a0ddb7a1d7987670b8b905c165"
|
||||
["challenge_repo_head_ref"]="challenges/lx-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lx-delta-01"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A lx_delta_02=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_base_ref"]="0f876b983249cd3fb32b53d405f5985e83d8c3bd"
|
||||
["challenge_repo_head_ref"]="challenges/lx-delta-02"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/lx-delta-02"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A lx_full_updated=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-libxml2.git"
|
||||
["challenge_repo_head_ref"]="challenges/lx-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="aixcc-afc"
|
||||
["fuzz_tooling_project_name"]="libxml2"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A sq_full_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-sqlite3.git"
|
||||
["challenge_repo_head_ref"]="challenges/sq-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/sq-full-01"
|
||||
["fuzz_tooling_project_name"]="sqlite3"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A sq_delta_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-sqlite3.git"
|
||||
["challenge_repo_base_ref"]="6a3e7f57f00f0a2b6b89b0db7990e3df47175372"
|
||||
["challenge_repo_head_ref"]="challenges/sq-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/sq-delta-01"
|
||||
["fuzz_tooling_project_name"]="sqlite3"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
declare -A zk_full_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-zookeeper.git"
|
||||
["challenge_repo_head_ref"]="challenges/zk-full-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/zk-full-01"
|
||||
["fuzz_tooling_project_name"]="zookeeper"
|
||||
["duration"]=$full_set_duration
|
||||
)
|
||||
|
||||
declare -A zk_delta_01=(
|
||||
["challenge_repo_url"]="git@github.com:aixcc-finals/afc-zookeeper.git"
|
||||
["challenge_repo_base_ref"]="f6f34f6d5b6d67205c34de617a0b99fe11e3d323"
|
||||
["challenge_repo_head_ref"]="challenges/zk-delta-01"
|
||||
["fuzz_tooling_url"]="git@github.com:aixcc-finals/oss-fuzz-aixcc.git"
|
||||
["fuzz_tooling_ref"]="challenge-state/zk-delta-01"
|
||||
["fuzz_tooling_project_name"]="zookeeper"
|
||||
["duration"]=$delta_set_duration
|
||||
)
|
||||
|
||||
submit_task() {
|
||||
task_name=$1
|
||||
declare -n task_data_ref=$task_name
|
||||
@@ -193,47 +184,47 @@ submit_task() {
|
||||
}
|
||||
|
||||
# From: https://github.com/aixcc-finals/example-crs-architecture/blob/1ccabc62b177a86a49c69a5d3b085eea299223ce/docs/round_info/exhibition-round-2.md#challenge-tasks-archive
|
||||
sim() {
|
||||
submit_task "freerdp_full"
|
||||
submit_task "libxml2_full"
|
||||
submit_task "sqlite_full"
|
||||
sim2() {
|
||||
submit_task "fp_full_01"
|
||||
submit_task "lx_full_01"
|
||||
submit_task "sq_full_01"
|
||||
|
||||
sleep $full_set_duration
|
||||
|
||||
submit_task "commons_compress_full"
|
||||
submit_task "zookeeper_full"
|
||||
submit_task "dropbear_full"
|
||||
submit_task "cc_full_01"
|
||||
submit_task "zk_full_01"
|
||||
submit_task "db_full_01"
|
||||
|
||||
sleep $full_set_duration
|
||||
|
||||
submit_task "freerdp_delta_1"
|
||||
submit_task "libxml2_delta_2"
|
||||
submit_task "integration_test_delta_1"
|
||||
submit_task "libpng_delta_1"
|
||||
submit_task "fp_delta_01"
|
||||
submit_task "lx_delta_02"
|
||||
submit_task "integration_test_delta_01"
|
||||
submit_task "lp_delta_01"
|
||||
|
||||
sleep $delta_set_duration
|
||||
|
||||
submit_task "sqlite_delta_1"
|
||||
submit_task "libxml2_delta_1"
|
||||
submit_task "sq_delta_01"
|
||||
submit_task "lx_delta_01"
|
||||
|
||||
sleep $delta_set_duration
|
||||
|
||||
submit_task "zookeeper_delta_1"
|
||||
submit_task "commons_compress_delta_2"
|
||||
submit_task "commons_compress_delta_3"
|
||||
submit_task "zk_delta_01"
|
||||
submit_task "cc_delta_02"
|
||||
submit_task "cc_delta_03"
|
||||
|
||||
sleep $delta_set_duration
|
||||
}
|
||||
|
||||
all() {
|
||||
submit_task "commons_compress_full"
|
||||
submit_task "dropbear_full"
|
||||
submit_task "freerdp_full"
|
||||
submit_task "integration_test_delta_1"
|
||||
submit_task "libpng_delta_1"
|
||||
submit_task "libxml2_full"
|
||||
submit_task "sqlite_full"
|
||||
submit_task "zookeeper_full"
|
||||
all2() {
|
||||
submit_task "cc_full_01"
|
||||
submit_task "db_full_01"
|
||||
submit_task "fp_full_01"
|
||||
submit_task "integration_test_delta_01"
|
||||
submit_task "lp_delta_01"
|
||||
submit_task "lx_full_01"
|
||||
submit_task "sq_full_01"
|
||||
submit_task "zk_full_01"
|
||||
}
|
||||
|
||||
single() {
|
||||
@@ -241,23 +232,23 @@ single() {
|
||||
}
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 [sim|all|single <name>]"
|
||||
echo "Usage: $0 [sim2|all2|single <name>]"
|
||||
echo ""
|
||||
echo "sim = Simulate round 2."
|
||||
echo "all = Run one challenge from each repository."
|
||||
echo "sim2 = Simulate round 2."
|
||||
echo "all2 = Run one challenge from each repository."
|
||||
echo "single <name> = Run one challenge."
|
||||
echo ""
|
||||
echo "name = The name of the challenge to run:"
|
||||
echo " commons_compress_full | commons_compress_delta_2 | commons_compress_delta_3"
|
||||
echo " dropbear_full"
|
||||
echo " freerdp_full | freerdp_delta_1"
|
||||
echo " integration_test_delta_1"
|
||||
echo " libpng_delta_1"
|
||||
echo " libxml2_full | libxml2_delta_1 | libxml2_delta_2"
|
||||
echo " sqlite_full | sqlite_delta_1"
|
||||
echo " zookeeper_full | zookeeper_delta_1"
|
||||
echo " cc_full_01 | cc_delta_02 | cc_delta_03"
|
||||
echo " db_full_01"
|
||||
echo " fp_full_01 | fp_delta_01"
|
||||
echo " integration_test_delta_01"
|
||||
echo " lp_delta_01"
|
||||
echo " lx_full_01 | lx_delta_01 | lx_delta_02"
|
||||
echo " sq_full_01 | sq_delta_01"
|
||||
echo " zk_full_01 | zk_delta_01"
|
||||
echo ""
|
||||
echo " libxml2_full_updated -> using the most recent version of helper.py"
|
||||
echo " lx_full_updated -> using the most recent version of helper.py"
|
||||
}
|
||||
|
||||
main() {
|
||||
@@ -267,11 +258,11 @@ main() {
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
"sim")
|
||||
sim
|
||||
"sim2")
|
||||
sim2
|
||||
;;
|
||||
"all")
|
||||
all
|
||||
"all2")
|
||||
all2
|
||||
;;
|
||||
"single")
|
||||
if [ -z "$2" ]; then
|
||||
Reference in New Issue
Block a user