KAR-2026-0019 critical 9.1 fixed drill

zkrep drill: operator key of zkrep demo agent B reported compromised

This is a recall drill: Karatum rehearsed the recall mechanism on its own house build. Nothing was compromised. A drill never touches real EAS attestations or real ERC-8004 reputation: where it exercises those steps it revokes a throwaway attestation it created, and publishes feedback that is revoked again when the drill is fixed.

  1. reported
  2. → triaged
  3. → confirmed
  4. → recalled
  5. → fixed

Facts

ClassEndpoint compromise
Severitycritical (9.1) KAS:1.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N/E:U
KAS 1.0, CVSS-v3.1-shaped for agents; the vector is explained in the methodology. High and critical trigger a recall.
Sourceoperator self-report
Affected
wallet 0xc5a800af3695d5e40cdfc4bed8428789be102428
Disclosureimmediate: the evidence is public record, the operator is Karatum itself or the operator disclosed it
Timelinereported 2026-10-17 10:01:28 UTC · triaged 2026-10-17 10:01:28 UTC · confirmed 2026-10-17 10:01:28 UTC · recalled 2026-10-17 10:01:37 UTC · closed 2026-10-17 10:01:53 UTC

What happened

DRILL. Karatum rehearses a recall on its own zkrep demo agent B (a testnet wallet acting for house build build-a-careful-v1) to show that a zero-knowledge reputation proof stops being accepted from the next root. Nothing was compromised. The recall is announced in KaratumIncidentLog; the zkrep publisher then publishes a root without B's leaf (immediate), and a proof B made before the recall is rejected on chain. The recall is lifted afterwards.

Evidence

TypeReferenceNoteChecked
urlhttps://karatum.com/zkrepthe public zkrep demoin Karatum's records

Links to third-party pages are shown as given by the reporter. A reference marked "in Karatum's records" resolved against our own verdicts, Shield runs, flight records or attestations at intake.

Recall

Confirmed at 2026-10-17 10:01:28 UTC. The first recall transaction was in a block 1.4 s later, the last one after 7.4 s (2 transactions on 2 chains).

Measured as block timestamp (chain clock, 1 s resolution) minus the time the maintainer confirmed (server clock). Base Sepolia blocks are 2 s apart and Ethereum Sepolia blocks 12 s, so those are also the floor of the two numbers. This was a drill: real EAS attestations and ERC-8004 reputation are never touched.

StepChainResultTransaction
Guard registry revocation (revokeCert)
the affected build has no VALID certificate to revoke
Base Sepoliaskipped—
Guard registry revocation (revokeCert)
the affected build has no VALID certificate to revoke
Ethereum Sepoliaskipped—
EAS attestation revocation
drill: EAS revocations are irreversible; real attestations are not touched
—skipped—
ERC-8004 feedback
drill: no reputation signal is published
—skipped—
IncidentLog announcementBase Sepoliadone0x6b44f617…ffc5b1
block 48231501
IncidentLog announcementEthereum Sepoliadone0x788456ff…10739a
block 11933465

Lifting the recall

Timeline and operator response

  1. 2026-10-17 10:01:28 UTC reported by karatum-operator
  2. 2026-10-17 10:01:28 UTC status by maintainer
    reported → triaged: operator self-report (drill)
  3. 2026-10-17 10:01:28 UTC disclosure by maintainer
  4. 2026-10-17 10:01:28 UTC status by maintainer
    triaged → confirmed: drill: confirmed by the operator
  5. 2026-10-17 10:01:37 UTC status by maintainer
    confirmed → recalled
  6. 2026-10-17 10:01:37 UTC recall by maintainer
  7. 2026-10-17 10:01:53 UTC note by drill
    zkrep: root epoch 2 published immediately without agent B's leaf; B's proof made before the recall was rejected on chain (ProofRejected(ROOT_NOT_ACCEPTED))
  8. 2026-10-17 10:01:53 UTC status by maintainer
    recalled → fixed: drill complete: lifting the recall

JSON: GET /v1/incidents/KAR-2026-0019 · signed feed: GET /v1/incidents/feed (entry 92) · All incidents