Results recorded 2026-09-28. All 79 challenges from the TCP1P repository playtest registry are included. Latest outcomes: 72 recorded as solved, one stuck (#02), one deferred (#55), three handout-blocked and two environment-blocked. Recorded as solved does not mean every run is a fully reviewed intended solve; individual qualifications are retained below.
Players used GPT-6 Sol at xhigh, with a 60-minute cap. Each row shows the latest recorded attempt, not cumulative time across retries or repairs. Approximate times and upper bounds remain marked. Blocked and deferred entries have no valid solve time.
For #01, #02, #47, #69, #73 and #74, first-flag time is measured from launch, and every external window lasted exactly 3,600 wall-clock seconds. Earlier runs use their recorded active/playtest time; the timing origins differ. These six latest runs allowed public internet research including challenge-specific writeups and solvers. Older procedural boundaries and later workspace-enforced boundaries are recorded in the evidence. This is not a clean blind resistance or platform-acceptance claim.
Important qualifications
- #02 Nujabes: the reference solver works and recovers the live flag. The AI did not complete the path within 60 minutes. All three services remained healthy with zero restarts. Missed steps were slashless check-song upload dispatch and the explicit shared app/bot log mount.
- #53 perteam-portal and #54 shared-portal: intentional platform demos, not exploitation challenges. Their original descriptions explicitly tell players to find the static flag on the page. Exclude their trivial captures when assessing exploitation difficulty.
- #01: public browser documentation assisted the intended username/password oracles; no matching public solver was found. First flag was 34m43s from launch (34m03s after availability checks). Zero target restarts. A wrapper bookkeeping error occurred after the full external timeout; a short same-room continuation followed. Do not describe it as uninterrupted active inference.
- #47: public caching documentation assisted the intended history/cache path; later analogous writeup informed a variation. First flag 5m45s. The frozen browser was Chrome 131; this is not a latest-runtime claim.
- #69: a public PHP article supplied the decisive SQLite native-loader technique. First flag 8m06s. A post-solve player configuration probe caused about 11m34s of HTTP 500; removing only the player-created file recovered the target without restart. Not a continuously healthy full-hour run.
- #73: challenge-specific public writeup and author solver assisted Apache/PECL discovery. First flag 6m02s. Original one-request callback reference was independently reverified on the exact image. No shortcut removing the intended execution/helper boundaries was demonstrated.
- #74: public author solver supplied the Mongoose/Sift gadget. One manual application reset cleared player-induced prototype pollution before first capture (5m43s); MongoDB and player data were retained. Docker RestartCount did not record that manual reset. Not an uninterrupted healthy hour.
- #08: the recorded capture was the source fallback test flag; deployment flag remains unverified.
- #46: an exploit was demonstrated, but repeated php-fpm restarts invalidated the run as a stable solve measurement.
- #56 kuta: solved after 31m21s, but intendedness of the startup-command route has not been confirmed in the current audit.
- #55 Challenge Kepepet: original Rust application source is missing. The author explicitly deferred reconstruction and further testing.
Unsolved at the 30-minute mark
#02 remained unsolved for its full 60-minute window. #40 solved at 39m51s and #01 at 34m43s with the qualifications above. #56 solved at 31m21s but still needs intended-path confirmation. These are individual attempt results, not guaranteed minimum solve times.
All challenge results
Challenge links point to the pinned original GitHub source. Evidence paths refer to the local challenge-authoring workspace; they are not public links.
| ID | Challenge / pinned source | Latest result | AI solve time | Notes and local evidence |
|---|---|---|---|---|
| 01 | ExistentialCrisis Revenge | solved | 34m43s | Solved: first flag 34m43s from launch; full 60m external window. Public browser documentation assisted. Post-timeout bookkeeping limitation recorded. Local evidence: .author/test-runs/001-whitebox-60m-openweb1/author-validation.json, .author/test-runs/001-whitebox-60m-openweb1/author-review.md. |
| 02 | Nujabes | stuck | Not solved in 60m00s | Stuck: no flag in the full 60m external window. Reference works; missed slashless upload dispatch and shared bot/log mount. Zero target restarts. Local evidence: .author/test-runs/002-whitebox-60m-openweb1/author-validation.json, .author/test-runs/002-whitebox-60m-openweb1/author-review.md. |
| 03 | ctfify | solved | 6m50s | Solved in 6m50s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/003-whitebox/author-validation.json. |
| 04 | kawaikute-gomen | solved | 4m15s | Fixed-hash check bypassed by no-output shell substitution in gRPC stream ID; live flag captured (4m15s) Local evidence: .author/test-runs/004/PLAYTEST-REPORT.md. |
| 05 | Intechfest Game Design Competition | solved | 7m46s | Solved in 7m46s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/005-whitebox/author-validation.json. |
| 06 | NOTEIFY | solved | 19m24s | Solved in 19m24s on the current white-box handout. Boundary: workspace-enforced. Local evidence: .author/test-runs/006-whitebox-repair3/author-validation.json. |
| 07 | Samehadaku KW | solved | 12m22s | ZIP symlink read, admin/TAR symlink write, and YAML constructor reached flag (12m22s); target-only Python 3.11 pin Local evidence: .author/test-runs/007/PLAYTEST-REPORT.md. |
| 08 | Imposible | solved | ~2m | Middleware-slice race reached /flag in ~2m; response contained only the source fallback test flag, so deployment flag remains unverified Local evidence: .author/test-runs/008/PLAYTEST-REPORT.md. |
| 09 | Notes Manager | solved | 2m28s | Registered user read the Flag note by direct UUID GET, bypassing its password step (2m28s) Local evidence: .author/test-runs/009/PLAYTEST-REPORT.md. |
| 10 | The Library | solved | 12m35s | Dynamic LINQ boolean oracle read the root flag (12m35s) in a clean fresh retry; first .NET run preserved as conservative contamination Local evidence: .author/test-runs/010-retry-002/PLAYTEST-REPORT.md. |
| 11 | Blue Monday | solved | 5m01s | Sanitizer/XHTML parser differential plus same-origin JSONP beat CSP; bot callback captured flag (5m01s) Local evidence: .author/test-runs/011/PLAYTEST-REPORT.md. |
| 12 | Bun | solved | 13m42s | Bun path/NUL read exposed token; chosen-file write plus loader preload captured live flag (13m42s) after target-only GNU wget repair Local evidence: .author/test-runs/012-retry-002/PLAYTEST-REPORT.md. |
| 13 | Notes Manager | solved | 2m08s | Profile role=admin exposed flag note; direct UUID GET bypassed password UI (2m08s); target-only MySQL 8.0 pin Local evidence: .author/test-runs/013/PLAYTEST-REPORT.md. |
| 14 | UREL-EX2S | solved | 7m09s | Bot-facing app path XSS sent live flag cookie to declared callback (7m09s); target-only Java base image pin Local evidence: .author/test-runs/014/PLAYTEST-REPORT.md. |
| 15 | nodejs-enthusiast | blocked-handout | — (no valid solve run) | declared ZIP leaks configured flag |
| 16 | ezz-memento-rsctf-dynamic | solved | 1m38s | Solved in 1m38s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/016-whitebox/author-validation.json. |
| 17 | A simple website | solved | 1m44s | 104 s; Nuxt/Vite file read Local evidence: .author/test-runs/017/PLAYTEST-REPORT.md. |
| 18 | Bypassssss | solved | 0m59s | 59 s; unauthenticated viewer traversal skips login Local evidence: .author/test-runs/018/PLAYTEST-REPORT.md. |
| 19 | Latex | blocked-handout | — (no valid solve run) | declared ZIP includes challenge.yml with configured flag |
| 20 | Un Secure | solved | 2m06s | 126 s; PHP deserialization gadget chain Local evidence: .author/test-runs/020/PLAYTEST-REPORT.md. |
| 21 | calculator | solved | 17m05s | 17m05s on fresh attempt 004; expression-chain file read; Deno 1 target repair Local evidence: .author/test-runs/021/PLAYTEST-REPORT.md. |
| 22 | love card | solved | 1m32s | 92 s; error_log file write to PHP execution; target cycles every 20 s Local evidence: .author/test-runs/022/PLAYTEST-REPORT.md. |
| 23 | Hacked | solved | 7m49s | 7m49s; loopback proxy plus Jinja template execution; wrapper exit-recording error after solve Local evidence: .author/test-runs/023/PLAYTEST-REPORT.md. |
| 24 | Hacked-V2 | solved | ~4m | about 4 min; loopback proxy plus Jinja template execution Local evidence: .author/test-runs/024/PLAYTEST-REPORT.md. |
| 25 | Shikanoko nokonoko koshitantan! | solved | 9m13s | Solved in 9m13s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/025-whitebox/author-validation.json. |
| 26 | ez-web | solved | 1m22s | 82 s; admin-primed nginx cache leaks flag; target-only Playwright fix Local evidence: .author/test-runs/026/PLAYTEST-REPORT.md. |
| 27 | multiplication | solved | 8m06s | 8m06s; reflected JavaScript reads admin cookie via rate-limit bit oracle (alternate exfil) Local evidence: .author/test-runs/027/PLAYTEST-REPORT.md. |
| 28 | hypocrite | solved | 3m13s | Solved in 3m13s on the current white-box handout. Boundary: workspace-enforced. Local evidence: .author/test-runs/028-whitebox-repair1/author-validation.json. |
| 29 | action-figures | solved | 7m30s | 7m30s; font write plus PHAR/Monolog chain; target-only APT repair Local evidence: .author/test-runs/029/PLAYTEST-REPORT.md. |
| 30 | expath1 | solved | 0m47s | 47 s; XPath injection selected live XML flag Local evidence: .author/test-runs/030/PLAYTEST-REPORT.md. |
| 31 | literver | solved | 2m17s | 2m17s; SQL UNION selected flag table Local evidence: .author/test-runs/031/PLAYTEST-REPORT.md. |
| 32 | oscommand | solved | 0m47s | 47 s; newline bypassed command filter; target-only APT repair Local evidence: .author/test-runs/032/PLAYTEST-REPORT.md. |
| 33 | unlimited | solved | 0m58s | 58 s; unthrottled OTP reset took over admin account Local evidence: .author/test-runs/033/PLAYTEST-REPORT.md. |
| 34 | web-jawat | solved | ~2m | about 2 min; forged admin JWT with guessed signing key Local evidence: .author/test-runs/034/PLAYTEST-REPORT.md. |
| 35 | TobTobiTobTobTobiTobTobTobiTobTobTobali | solved | ~2m | about 2 min; Jinja SSTI bypassed substring filter and read runtime flag Local evidence: .author/test-runs/035/PLAYTEST-REPORT.md. |
| 36 | ingfokanlokasitakjil | solved | 1m07s | 67 s; MongoDB operator injection opened Max’s protected post Local evidence: .author/test-runs/036/PLAYTEST-REPORT.md. |
| 37 | php-deserialization-v2 | solved | 2m27s | 2m27s; PHP deserialization reference alias reached callable chain Local evidence: .author/test-runs/037/PLAYTEST-REPORT.md. |
| 38 | redirection | solved | 0m59s | 59 s; YouTube warning echoed flag before intended webhook redirect Local evidence: .author/test-runs/038/PLAYTEST-REPORT.md. |
| 39 | es-es-ti-ai | solved | 2m10s | 2m10s; saved note path traversal rendered HTML as Pug and read flag Local evidence: .author/test-runs/039/PLAYTEST-REPORT.md. |
| 40 | greter-nonce-leak | solved | 39m51s | Solved in 39m51s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/040-whitebox/author-validation.json. |
| 41 | jwt-aes-gcm | solved | 1m43s | Solved in 1m43s: shortened AES-GCM tag plus ciphertext role flip. Local evidence: .author/test-runs/041/PLAYTEST-REPORT.md. |
| 42 | lesser-nonce-leak | solved | 12m27s | Solved in 12m27s: CSS nonce extraction plus nonce-authorized srcdoc script. Local evidence: .author/test-runs/042/PLAYTEST-REPORT.md. |
| 43 | magic-collision | solved | 1m20s | Solved in 1m20s: PHP array type errors and data stream. Local evidence: .author/test-runs/043/PLAYTEST-REPORT.md. |
| 44 | prototype | solved | 0m45s | Solved in 45s: prototype pollution of Object.prototype via favorite=proto. Local evidence: .author/test-runs/044/PLAYTEST-REPORT.md. |
| 45 | sequel | solved | 1m08s | Solved in 68s: case-variant Go JSON binding bypass plus SQL UNION. Local evidence: .author/test-runs/045/PLAYTEST-REPORT.md. |
| 46 | [Holo-Curl[Fix]](https://github.com/TCP1P/TCP1P-Playground-365-2025/tree/2dc0977efe69dddc12d218f4f3b8e2fcc806ba94/Web/Holo-Curl%5BFix%5D) | blocked-environment | ~7m (unstable target; not a valid solve time) | Flag exploit demonstrated in 7m, but php-fpm restarted repeatedly (39 observed); unstable target. Local evidence: .author/test-runs/046/PLAYTEST-REPORT.md. |
| 47 | bfcache | solved | 5m45s | Solved: first flag 5m45s from launch; full 60m external window. Public caching notes assisted the intended history/cache route. Local evidence: .author/test-runs/047-whitebox-60m-openweb1/author-validation.json, .author/test-runs/047-whitebox-60m-openweb1/author-review.md. |
| 48 | missing_xss | solved | 2m34s | Solved in 2m34s on the current white-box handout. Boundary: workspace-enforced. Local evidence: .author/test-runs/048-whitebox-repair1/author-validation.json. |
| 49 | note-fs | solved | 1m15s | Solved in 75s: URL-encoded traversal plus Bun NUL truncation. Local evidence: .author/test-runs/049/PLAYTEST-REPORT.md. |
| 50 | ledger-forge | solved | ≤5m12s | Solved in <=5m12s: JWT alg confusion plus admin Jinja SSTI; local dynamic flag emulation. Local evidence: .author/test-runs/050/PLAYTEST-REPORT.md. |
| 51 | koth-throne | solved | 1m40s | Solved in 1m40s: SQL injection admin login wrote issued King-of-the-Hill token; local platform emulation. Local evidence: .author/test-runs/051/PLAYTEST-REPORT.md. |
| 52 | owasp-portal | solved | 0m52s | Solved in 52s: normal-user read of admin note ID 1 (local dynamic flag emulation). Local evidence: .author/test-runs/052/PLAYTEST-REPORT.md. |
| 53 | perteam-portal | solved | <1m active; 7m15s elapsed | Static flag on page; active work under one minute, 7m15s wall due runner idle gap. Intentional container-platform demo: original description tells players to find the flag on the page. Not an exploitation difficulty result. Local evidence: .author/test-runs/053/PLAYTEST-REPORT.md. |
| 54 | shared-portal | solved | 0m07s | Solved in 7s: static flag displayed on public page; no exploitation. Intentional container-platform demo: original description tells players to find the flag on the page. Not an exploitation difficulty result. Local evidence: .author/test-runs/054/PLAYTEST-REPORT.md. |
| 55 | challenge-kepepet | deferred | — (latest test deferred) | Rust application source unavailable; author requested no new test or reconstruction. Local evidence: .author/test-runs/055/PLAYTEST-REPORT.md. |
| 56 | kuta | solved | 31m21s | Solved in 31m21s: qutebrowser startup command injection plus timing oracle. Local evidence: .author/test-runs/056/PLAYTEST-REPORT.md. |
| 57 | lul | solved | 3m55s | Solved in 3m55s: encoded static-path confusion executes reflected script in bot. Local evidence: .author/test-runs/057/PLAYTEST-REPORT.md. |
| 58 | pecel | blocked-handout | — (no valid solve run) | declared ZIP includes .git repository history |
| 59 | pressword | solved | 2m05s | Solved in 2m05s: WordPress token-destructor deserialization to command execution. Local evidence: .author/test-runs/059/PLAYTEST-REPORT.md. |
| 60 | yo-nda-tau | solved | 2m13s | Solved in 2m13s: Node VM escape; shorter this.constructor path may be unintended. Local evidence: .author/test-runs/060/PLAYTEST-REPORT.md. |
| 61 | Your-Name | solved | 2m02s | Solved in 2m02s: JavaScript hex escapes bypass HTML encoding, bot cookie exfil. Local evidence: .author/test-runs/061/PLAYTEST-REPORT.md. |
| 62 | Your-Name-Revenge | solved | 1m23s | Solved in 83s: window.name HTML injection after bot cross-origin navigation. Local evidence: .author/test-runs/062/PLAYTEST-REPORT.md. |
| 63 | Crew DB | blocked-environment | — (no valid solve run) | No solver run: MySQL 5.7 initialization repeatedly exited 137 before app startup. Local evidence: .author/test-runs/063/PLAYTEST-REPORT.md. |
| 64 | Malas Membuat Framework | solved | 3m21s | Solved in 3m21s on the current white-box handout. Boundary: workspace-enforced. Local evidence: .author/test-runs/064-whitebox-repair1/author-validation.json. |
| 65 | exxxxed | solved | 6m58s | Solved in 6m58s: JavaScript replacement expansion bypassed sanitizer, bot cookie exfil. Local evidence: .author/test-runs/065/PLAYTEST-REPORT.md. |
| 66 | pdf-generator | solved | 3m40s | Solved in 3m40s: TeX file dump split around PDF text filter. Local evidence: .author/test-runs/066/PLAYTEST-REPORT.md. |
| 67 | solid-blog | solved | 3m29s | Solved in 3m29s: SQL injection plus bot cookie exfil through rendered post. Local evidence: .author/test-runs/067/PLAYTEST-REPORT.md. |
| 68 | solid-solid-solid | solved | 3m34s | Solved in 3m34s: URL fetch overwrote app.py, memory-triggered reload exposed flag. Local evidence: .author/test-runs/068/PLAYTEST-REPORT.md. |
| 69 | nonexistent | solved | 8m06s | Solved: first flag 8m06s from launch; full 60m external window. Public PHP article assisted SQLite native-extension loading. Post-solve outage required configuration recovery. Local evidence: .author/test-runs/069-whitebox-60m-openweb1/author-validation.json, .author/test-runs/069-whitebox-60m-openweb1/author-review.md. |
| 70 | balakatumtum-fans-clubs | solved | 4m15s | Solved in 4m15s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/070-whitebox/author-validation.json. |
| 71 | http3 0day | solved | 1m07s | Solved in 1m07s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/071-whitebox/author-validation.json. |
| 72 | super revenge | solved | 5m58s | Solved in 5m58s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/072-whitebox-v3/author-validation.json. |
| 73 | file-not-found-v2-rsctf-dynamic | solved | 6m02s | Solved: first flag 6m02s from launch; full 60m external window. Public challenge writeup/author solver assisted Apache/PECL execution. Local evidence: .author/test-runs/073-whitebox-60m-openweb1/author-validation.json, .author/test-runs/073-whitebox-60m-openweb1/author-review.md. |
| 74 | new-gadget | solved | 5m43s | Solved: first flag 5m43s from launch; full 60m external window. Public author solver assisted the Mongoose/Sift gadget; one manual app reset before capture. Local evidence: .author/test-runs/074-whitebox-60m-openweb1/author-validation.json, .author/test-runs/074-whitebox-60m-openweb1/author-review.md. |
| 75 | backtothefuture | solved | 2m05s | Solved in 2m05s: exposed Git history yielded older flag-bearing PHP blob. Local evidence: .author/test-runs/075/PLAYTEST-REPORT.md. |
| 76 | uaul | solved | 2m14s | Solved in 2m14s: case-sensitive admin-role mismatch and template filter bypass. Local evidence: .author/test-runs/076/PLAYTEST-REPORT.md. |
| 77 | uma | solved | 19m43s | Solved in 19m43s: file URL read, Tomcat partial PUT/session store, Groovy side effect. Local evidence: .author/test-runs/077/PLAYTEST-REPORT.md. |
| 78 | NativeNote | solved | 4m34s | Solved in 4m34s on the current white-box handout. Boundary: procedural. Local evidence: .author/test-runs/078-whitebox/author-validation.json. |
| 79 | my imaginary dream | solved | 24m23s | Solved in 24m23s on the current white-box handout. Boundary: workspace-enforced. Local evidence: .author/test-runs/079-whitebox-recheck3/author-validation.json. |