Stock nginx carried the decision.
The admission fixture passed A–E: seven authorization calls and four backend calls over one TLS/HTTP/2 connection. Native execution attribution and post-compromise protection were not established.
FIXTURE PASSSchrödinger's Request.
Don't predict the next vulnerability. Limit what it can achieve.
RAES began during the October 2026 PHP2Shell patch window: disclosed vulnerabilities, active attacks and no immediately available PHP fix. Could an nginx edge and independent security boundaries limit the consequences of exploitation?
The research goal is a measurable protection benefit against one explicitly defined harmful outcome, compared with an unchanged baseline: the forbidden operation or harmful output must actually be prevented, legitimate work must remain acceptably functional, and limits and costs must be understood. Perfect identification of the original corrupting request, universal exploit detection and perfectly selective HTTP/2 response cancellation are not required.
The existing CAT records preserve different kinds of evidence. Passing a cooperative fixture or an offline check does not establish protection under compromise.
The admission fixture passed A–E: seven authorization calls and four backend calls over one TLS/HTTP/2 connection. Native execution attribution and post-compromise protection were not established.
FIXTURE PASSO0–O7 passed, with eight selected native opens independently traced. Same-UID actors and trusted startup left attacker-resistant exclusivity and ownership before untrusted code unproved.
PARTIAL / CONDITIONALA same-UID process modified another instance's release resource; that instance ran without broker release. The ownership property failed. Native denial and response-selectivity gates were not run; the BPF assessment was source feasibility only.
OWNERSHIP FAIL / GATES BLOCKEDA prototype compiled and nine recorded offline checks passed, including an ordinary-user pre-exec barrier observation. Dedicated-identity isolation, kernel owner registration and native enforcement remain untested.
NATIVE GATES NOT RUNIn a synthetic patched PHP 8.4.27 worker, Request A left process-local state that Request B observed in the same worker. With no new enforcement, B appended to a disposable canary. Under a dedicated AppArmor profile, the kernel denied B's exact canary open (requested_mask="ac", denied_mask="ac") and the canary stayed unchanged. The policy did not need to attribute the marker to A to stop this selected outcome.
Permitted work succeeded under the unchanged profile in a fresh worker, not in the protected A→B generation. The first protected controller exited 1 because its audit checker expected w instead of the observed ac; its raw kernel and file observations are preserved as such. Both policy activations were removed and the before/after policy inventories matched.
Prevention blocks a defined operation or outcome. Containment bounds consequences after compromise. Detection observes a signal; attribution binds it to an owner or request. Client delivery concerns which bytes reach the client. These are different claims.
Separate R2³ research observed narrow native denial and fail-open after link loss. Its overall result remains INCONCLUSIVE / result 3. Neither that result nor the CAT fixtures establishes deployable protection, general filesystem immutability or a production architecture.
CAT remains open. The earlier experiments keep their original results and limitations; no new experiment is authorized by this page.