Reversing MD5 Hash Function from 2500-Layer Neural Network in Jane Street CTF Puzzle
A Jane Street puzzle released in February last year presented participants with a complete PyTorch model in pickle format containing roughly 2500 linear layers. The model, stored in model.pt, produced an output of 0 for almost every input, including the example strings “vegetable dog”. The challenge required discovering an input that would make the network return a non-zero value without relying on gradient descent or exhaustive search.
Initial inspection of the output layers
Participant Alex began by examining the final two linear layers. The last layer was a 48×1 weight matrix clearly divided into three equal sections, while the preceding layer contained three copies of identical weights together with a repeating 16-byte bias pattern incremented by one each time. This structure indicated that the network maintained three versions of a 16-byte vector v and compared them against a secret target x using the combination v, v+1, v+2. The final layer applied weights 1, −2 and 1, so that only an exact match across all 16 bytes produced a positive result after the bias of −15 was applied.
Network simplification and constraint solving
The remaining 2500 layers formed a directed acyclic graph of integer operations. Alex modeled the entire network as an integer linear program, introducing binary variables to encode the behavior of each ReLU activation. After repeated simplifications—merging identity mappings, removing redundant ReLUs on strictly positive paths, and collapsing duplicate neurons—the problem size dropped from approximately two million nodes to 75 000. Even then, both an ILP solver and a subsequent SAT encoding with 200 000 variables failed to finish within practical time limits.
Discovery of the MD5 core
Plotting layer widths revealed 32 identical periods of length 48. Consulting common cryptographic primitives, Alex recognized the structure of the MD5 compression function. Manual verification confirmed that intermediate activations matched MD5 round constants and state variables, while other hash functions did not. The target 128-bit value was already visible in the bias of the penultimate layer, reducing the original problem to finding a preimage under that specific MD5 hash.
Unintentional length-encoding bug
Further reverse engineering exposed a flaw in the first seven layers responsible for encoding message length in little-endian format. When the input length reached or exceeded 256 bits, the network stored the raw integer 256 instead of the correct four-byte representation. This error affected only a subset of MD5 blocks yet prevented correct hashing for any input longer than 32 bytes. The bug was later confirmed by the puzzle authors to be unintentional.
Final solution
Once the algorithm and the target hash were known, the remaining task was a modest brute-force search over two-word English phrases. A larger word list quickly yielded the correct input that satisfied the hidden MD5 value. The puzzle demonstrated that a carefully constructed neural network can embed a non-differentiable cryptographic routine while still remaining solvable through systematic simplification and algorithmic insight.
Related articles
AI Agent Workflow Exceeds 100-Unit ERP Limit Reaching 120 Due to Check-Then-Act Race Condition
A detailed case study demonstrates how an AI workflow authorized to order no more than 100 units of COMP-17 ended up creating 120 units across three suppliers. Each individual order of 40 units passed authorization checks returning ALLOW, yet the cumulative result violated the human-delegated mandate. The root cause was a classic check-then-act race condition where stateful permission tracking read the same initial balance concurrently before any updates occurred. Sequential stateful checks prevented the overrun, but concurrent execution allowed all three requests to read zero consumption and receive ALLOW. An improved design using PostgreSQL SELECT FOR UPDATE performs atomic reservation of the grant balance before calling the ERP system, ensuring only two orders succeed and the third is rejected with DENY_CAPACITY. The experiment used a deterministic planner without any LLM to isolate the authorization mechanism from model reasoning quality. Five key questions are provided for production deployments involving cumulative business limits delegated to agents.
SECURITM Launches MCP Server for External AI Access to Security Data
SECURITM has introduced an MCP server that connects external AI assistants directly to its platform data on assets, risks, tasks, and metrics. This marks the first such implementation among Russian SGRC and SOAR systems. The open MCP protocol enables natural language queries about critical assets without owners, overdue tasks, or monthly metric changes without manual data export. Supported tools include GigaChat, Yandex solutions, Claude, ChatGPT, Cursor, and compatible local models. Access remains strictly read-only through dedicated tokens with optional IP restrictions. The feature is available in paid cloud and on-premise editions and complements the platform’s built-in AI assistant.
One Year Left to Secure Systems as Open-Source GLM-5.3-Flash Enables Automated Cyber Attacks
Chinese company Z.ai Co. released GLM-5.3-Flash in August 2026, an open-weight model that achieves 84.5% on CyberGym and 54.4% on ExploitBench, matching or exceeding leading commercial LLMs in vulnerability discovery and exploitation tasks. The model runs locally on consumer hardware such as a single Nvidia DGX Spark or Apple M5 Mac Studio with 256 GB unified memory, allowing unrestricted use after abliterated versions remove safety alignments. Experts warn that LLM agents could soon scan and exploit zero-days across Windows, Linux, browsers, and messaging apps around the clock. Initiatives Project Glasswing (Anthropic-led) and Daybreak (OpenAI-led) are racing to patch critical vulnerabilities in open-source projects and critical infrastructure before the next generation of unrestricted models arrives. Organizations are advised to accelerate patch deployment, inventory supply chains, and adopt advanced LLMs defensively within the remaining one-year window.
RFC 9421 and Open wbauth Protocol Accelerate AI Agents 5.5x by Replacing Anti-Detect Browsers with Cryptographic Signatures
A new open implementation of the IETF RFC 9421 HTTP Message Signatures standard called wbauth allows AI agents to authenticate using Ed25519 cryptographic signatures instead of resource-heavy anti-detect browser farms. The approach eliminates the need for Camoufox, Playwright, or AdsPower instances that consume 500 MB to 1.5 GB of RAM per process and require residential proxy pools. Benchmarks show cold start time dropping from 1744 ms to 5 ms, request time from 86.8 ms to 15.8 ms, and memory usage from 500 MB to 0.76 MB. The system uses three HTTP headers for signing and verification against a public key directory hosted on Cloudflare Workers and D1. Server-side validation at the WAF or edge involves fetching the public key, canonicalizing the message per RFC 9421, verifying the Ed25519 signature, and checking timestamps to prevent replay attacks. The npm package wb-auth@0.4.0 and PyPI package wbauth-sdk==0.4.0 provide ready-to-use signers for Node, Bun, Deno, Python httpx, and requests. The full source is available on GitHub under the MrKoriy/wbauth repository.