Commit Graph

10 Commits

Author SHA1 Message Date
artmetla 7297a9e637 Submission Verification logic for Android submissions (#289)
1) Disabled AppArmor block for unpriviledged user namespaces. This hapend in ubuntu-latest: https://discourse.ubuntu.com/t/understanding-apparmor-user-namespace-restriction/58007. Added this step to "get_android_dependencies.sh".
2) Using "get_android_dependencies.sh" script to handle dependencies for all execution options: server.py, exploit build, and exploit_reproduction.
3) Optimised exploit reproduction run time, by downloading releases and installing dependencies in parallel. 
4) Conducted clean up to free up a bit of extra space for Cuttlefish runs (cleaning compilation leftovers and APT caches).
5) Using "cuttlefish.sh" to run VM in all execution options: server.py and GHA reproducer. Modified "cuttlefish.sh" to add "--test-mode" which allows easy testing by setting "falg" file permissions equivalent to exploit executable. It's disabled in prod. Improved Android16 detection logic (to enable necessary execution flags for "launch_cvd"), as apparently "launch_cvd --help" could fail sometimes. Improved cleaning logic (important as launch_cvd is super nasty and lefts a lot of tmps and random leftovers which could negatively impact next run of the VM)
6) Apparently in ubuntu-latest "sg -c" requires password. So implemented this logic canonical/data-platform-workflows@349e0c8. This is important as Cuttlefish couldn't run without user being added in groups. By default they suggest reboot to apply those changes, but it's impossible in GHA.
7) "Check PR content" logic is already updated in prod
8) Ensured that in exploit build environment NDK is added to the PATH, so simple Makefiles like:
```
exploit: exploit.c
clang --target=x86_64-linux-android35 -static $^ -o exploit
```
The whole thing was tested with dummy exploit in my fork.
9) Implemented proper timeout check (30 mins) in "cuttlefish.sh"
10) Introduced sparse-checkout for the GHA.
2025-12-04 15:21:19 +01:00
Tamas Koczka 24880bbeba kernelCTF: enable bpf_jit_harden in repro 2025-09-27 10:34:03 +00:00
Jordy Zomer 588031ba10 Update init.sh
Add `lo` interface so the repro instance is coherent with the live isntance.
2025-04-11 16:13:12 +02:00
Tamás Koczka 549c3528f0 kernelCTF: repro: fix kernel command line arguments
io_uring was not disabled due to the order of conditions: "sysctl.io_uring_disabled=2" was passed to user-space instead of the kernel.

Hardening arguments were missing.
2025-01-09 13:39:51 +01:00
Chani Jindal dbd6959045 Update repro.sh to handle io_uring arg 2024-12-05 20:32:03 +00:00
Tamás Koczka ebc4424126 kernelCTF: GHA: repro: try to disable AVX512 2024-04-15 17:54:11 +02:00
Tamas Koczka 84c3de4ad4 kernelCTF: GHA: repro completely turns off KASLR if exploit needs KASLR leak, so other randomized areas are also predictable 2024-01-10 19:15:34 +00:00
Tamas Koczka d020b7384f kernelCTF: GHA: fix repro_log archiving and exploit_info propagation bugs 2023-11-01 17:36:11 +00:00
Tamas Koczka a81949bb67 kernelCTF: GHA: fix exploit output in summary 2023-09-17 01:25:50 +00:00
Tamas Koczka 4a6532e00d kernelCTF: PR GHA: support KASLR leak for repro 2023-09-17 01:09:53 +00:00