{"id":"c1392","filename":"c1392_write_injekcija_zatvorena.dok.json","weise3_id":"bbf85213d0dbbf99d75bfc81d0d794828ce1dd9bc761db6ebbbfde201229b100","tip":"sigurnosni_fix_dokaz","naziv":"Write-injekcija zatvorena — SudacMiddleware write-gate + /media/ simbioza","kreator":"genesis","datum":"2026-06-14","snippet":"","status":"","prev_weise3":"","bunker_l":"#72d091","full":{"cid":"c1392","tip":"sigurnosni_fix_dokaz","format":"DOKARH-2026 v2.0","naziv":"Write-injekcija zatvorena — SudacMiddleware write-gate + /media/ simbioza","datum":"2026-06-14","server":"EU (217.160.71.124)","povod":"Cjelina 3 blizanac: jutros zatvoren read-leak (c1386), ostala aktivna WRITE izloženost. Izmjereno (probe_write_auth, zero side-effect): 24 create-rute BEZ auth → neautenticirano pisanje PII (osobe/komitenti/pacijenti) + tenant impersonacija/aktivacija. Korijen: bile u _JAVNI_PREFIKSI → javni write.","izmjereno_prije":{"no_auth_422":24,"labirint_decoy_200":13,"gated_401":11,"napomena":"13 'FLAG-200' bili LABIRINT mamci (provjereno tijelom: kreator membrana@fenix/borg@asimilacija), ne pravi create"},"fix":{"middleware":"services/sudac_middleware.py — _SOBE_WRITE_TREBA_SESIJU (11 prefiksa) + write-gate u _handle: POST/PUT/PATCH/DELETE bez valjane sesije → honest 401 (ne labirint)","prefiksi_11":["osobe","komitenti","pacijenti","partneri","podruznice","skladista","tenants","transfers","artikli","zalihe_optika","narudzbe"],"media_simbioza":"api/media.py — handler-side _media_upload_dozvoljen: sesija ILI soba_token vezan uz POSTOJECU sobu (propter/sobe/{token}.dokarh; path-traversal guard). NE puki tag → nema teatra. Opcija B (Ivan).","namjerno_izostavljeno":{"dispo":"driver-PIN auth — mjeri zasebno prije gate-anja (ne lomi vozacevo prihvacanje posla)","firme_racuni":"route-level Depends(sesija) (labirint maskira, ali zasticene)","pos":"handler session auth","kaucija":"vec gated (401 izmjereno)"}},"dokaz_ponasanja":{"write_gate_bez_tokena":"401 na svih 11 (11/11)","owner_write":"POST /osobe/ + /me-potvrden token (invalid body) → 422 (prosao gate, nista stvoreno)","owner_read":"GET /osobe/ + token → 200 (prosao read-gate)","media_anon":"valjan multipart bez sesije → 401 ×3 (uklj. soba_token=../../etc/passwd), nista stvoreno","login_roundtrip":"8/8 zeleno (registracija→verify→/me→odjava→krivi potpis)","read_gate_jutrosnji":"i dalje 401 bez / 200 sa sesijom","predvorje":"checkin/smjestaj/brsljani javno (nije 401-prijava-potrebna)","servis":"active, health 200, nema startup tracebacka","auto_revert":"NIJE aktiviran — owner prolazi sve"},"lekcija":"Burst re-test pokazao 'owner→401' — bio Puž Fibonacci artifakt (owner token prazan, 10. auth poziv u nizu). Surgicki /me-potvrden token dokazao gate ispravnim. Nisi revertao na lazni 401 — izmjeren izvor (ista disciplina kao c1386).","backup":"services/sudac_middleware.py.bak_write_20260614, api/media.py.bak_write_20260614","ostaje_nit":"dispo write-gate (mjeri driver-PIN auth flow → daje li Redis sesiju), pa onda gate. Zaseban chain entry kad se zatvori.","zakon":"ZAKON NAD ZAKONIMA (dokaz ponasanja pokazan, ne tvrdnja) · ZAKON 32 (fix=chain) · ZAKON 29 (sigurnost default) · ZAKON 46 (bez over-claima; dispo posten kao OSTAJE)","citacija":"Aktivna izloženost ne čeka, nedovršenost čeka. Read-leak jutros, write-injekcija sada — obje strane zida.","weise3_id":"bbf85213d0dbbf99d75bfc81d0d794828ce1dd9bc761db6ebbbfde201229b100","krunica_hash":"bbf85213d0dbbf99d75bfc81d0d794828ce1dd9bc761db6ebbbfde201229b100"}}