Skip to content

Chore: monthly .org update - #660

Merged
scode2277 merged 180 commits into
mainfrom
develop
Oct 13, 2026
Merged

scode2277 merged 180 commits into
mainfrom
develop

Conversation

@scode2277

@scode2277 scode2277 commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

What does this PR change?

This PR takes all the updates of the last month on the main branch and .org site

Type of change

  • New content
  • Edit to existing content
  • Outline / structure change
  • Typo or formatting fix
  • Tooling / config

If applicable

  • Editing existing content: tagged the current contributors from the attribution list
  • Framework has a steward: asked them to review
  • Outline change: updated vocs.config.ts with the dev: true parameter
  • Want community feedback: shared this PR in our Discord

Stuck on anything? Just write it here and we're happy to help.

artemisclaw82 and others added 30 commits April 6, 2026 12:37
#400)

* content(opsec): endpoint security tiers and DPRK liveness verification

- Add endpoint security device provisioning tiers (managed, VDI, enterprise browser)
- Add deepfake liveness verification techniques to DPRK TTP page
- Add andrew-chang-gu to contributors.json (username TBD)

Co-authored-by: DicksonWu654 <dickson@certik.com>
Co-authored-by: andrew-chang-gu <>

* chore: fill andrew-chang-gu contributor fields from public LinkedIn profile

* Add contributor Andrew Chang-Gu to contributors.json

Added new contributor Andrew Chang-Gu with details.

---------

Co-authored-by: DicksonWu654 <dickson@certik.com>
Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
* Add password manager endpoint hardening guide

* Tone down password manager hardening guide

* Shorten password manager hardening guide

* Make wallet secret storage guidance explicit

* Remove decorative separators from password manager hardening guide

* Fix lint in password manager endpoint guide

* Tighten password manager endpoint guide

* Shorten password manager endpoint guide

* Clarify password manager endpoint guidance

* Add password manager endpoint hardening guide

* Tone down password manager hardening guide

* Shorten password manager hardening guide

* Make wallet secret storage guidance explicit

* Remove decorative separators from password manager hardening guide

* Fix lint in password manager endpoint guide

* Tighten password manager endpoint guide

* Shorten password manager endpoint guide

* Clarify password manager endpoint guidance

* Expand password manager hardening scope

* Revert "Expand password manager hardening scope"

This reverts commit 4bf04d6.

* docs: tighten password manager browser guidance

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
* Add hardware security key guide

* Credit Opsek authors on YubiKey guide

* Remove decorative separators from hardware security keys guide

* Fix lint in hardware security keys guide

* Tighten hardware security keys guide

* Move hardware security keys guide to endpoint security

* Tighten hardware keys guide metadata

* Update hardware-security-keys.mdx

* Update hardware-security-keys.mdx

* Add hardware security key guide

* Credit Opsek authors on YubiKey guide

* Remove decorative separators from hardware security keys guide

* Fix lint in hardware security keys guide

* Tighten hardware security keys guide

* Move hardware security keys guide to endpoint security

* Tighten hardware keys guide metadata

* Add YubiKey-specific setup guidance

* docs: tighten hardware key setup guidance

* Delete AGENTS.md

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
* Add stewards for Incident Management and AI Security fws

* sync contributors company
* Add SSH client and key management hardening guide

* Remove decorative separators from SSH hardening guide

* Fix markdownlint spacing in SSH hardening guide

* Tighten SSH hardening guide

* Shorten SSH hardening guide

* Clarify SSH hardening guidance

* Introduce SSH certificates for better key management

Added a section on using SSH certificates for improved access management.

* Clarify SSH host verification guidance

* Fix SSH guide markdown formatting

* Finish SSH guide review fixes

* Add SSH client and key management hardening guide

* Remove decorative separators from SSH hardening guide

* Fix markdownlint spacing in SSH hardening guide

* Tighten SSH hardening guide

* Shorten SSH hardening guide

* Clarify SSH hardening guidance

* Introduce SSH certificates for better key management

Added a section on using SSH certificates for improved access management.

* Clarify SSH host verification guidance

* Fix SSH guide markdown formatting

* Finish SSH guide review fixes

* Trim unrelated SSH wordlist entries

* Update wordlist.txt

* Add reviewers to SSH client hardening guide

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
* add github workflow to autmatically upload images to S3

* implement review + deps revamp

* Reorganize AWS credentials configuration in workflow

* Add --ignore-scripts to install step for supply chain attack mitigation

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
* Added MFA overview, and updated contributors file.

* Build fix and language updates.

* Refine MFA overview and recommendations

Revised language for clarity and emphasis on MFA importance. Updated recommendations for MFA methods and highlighted security considerations for passkeys.

* Further clarification about passkey storage.

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
Co-authored-by: frameworks-volunteer <jamesbond777bot@duck.com>
* Port cert revisions and add SFC Identity & Accounts

Mirrors the revisions applied in the SEAL-Certs-Template repo (see its
CHANGELOG.md for full detail). Summary:

- sfc-multisig-ops: ms-2.1.2 strengthened from "evaluate" to "implement";
  ms-4.1.1 transaction process consolidated 8 to 5 bullets
- sfc-treasury-ops: scope note added; per-actor/per-path exposure limits
  (tro-2.1.3) and privileged access / root account management (tro-3.1.5)
  added; trusted-parser bullet on tro-4.1.1; various consolidations and
  softening (session timeouts, impact thresholds, exposure limits)
- sfc-devops-infrastructure: di-1.1.4 split into process + di-1.1.5 list;
  runner hardening on di-3.1.1; network architecture on di-4.1.1; supply
  chain mention softened; References section added
- sfc-dns-registrar: dns-3.1.1 slimmed to reference the new Identity &
  Accounts cert for account management
- sfc-incident-response: four IR controls consolidated (team roles,
  contacts, alerting, drills); header reference to Identity & Accounts
- sfc-identity-accounts (NEW): horizontal cert covering organizational
  account management (inventory, phishing-resistant MFA, credential
  management, recovery methods, lifecycle, takeover monitoring, third-
  party access)

Control IDs are stable; no renames. Baseline text changes do not affect
workbook import (keyed on control ID).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Retire SFC Workspace Security; wire in Identity & Accounts

The old Workspace Security cert drifted far from SEAL's SME (device
management, EDR/MDM, physical/travel security, formal training programs).
Its crypto-relevant content (account inventory, phishing-resistant MFA,
credential management, account lifecycle, takeover monitoring) is now in
the new horizontal Identity & Accounts cert. Generic enterprise IT
coverage is better left to ISO 27001 / SOC 2 / CIS.

- Delete docs/pages/certs/sfc-workspace-security.mdx
- vocs.config.tsx: sidebar updated (add Identity & Accounts, remove
  Workspace Security)
- utils/generate-cert-data.js: CERT_ORDER updated so the overview-page
  "Export All Certifications" xlsx includes I&A and excludes Workspace
- utils/generate-printable-checklists.js: CERT_META updated so the Print
  button generates an I&A checklist and no longer generates one for
  Workspace
- components/certified-protocols/CertifiedProtocols.tsx: certTypeToName
  map updated (sfc-ida replaces sfc-ws)
- docs/pages/certs/overview.mdx: cert list updated
- docs/pages/certs/index.mdx: cert list updated
- docs/pages/intro/overview-of-each-framework.mdx: cert list updated

The fetched-tags.json and cert-data.json artifacts regenerate at build
time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Surface control IDs in the control card UI

Control IDs (e.g., ms-2.1.2) are already in the data model and used by
workbook import/export and aria attributes, but were invisible in the
rendered card. Surface them inline next to the title so readers and
reviewers have a stable reference they can cite.

- ControlCard.tsx: render {control.id} before the title with a muted
  separator
- control.css: .control-id styled muted, monospace, 0.875em; .control-id-sep
  muted, non-bold

No behavioral change; purely additive display.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add per-cert version stamps and central changelog

Protocols that have certified against an earlier version of a cert need
to scope the delta when that cert is revised. Adds explicit versioning
so re-certification decisions are data-driven.

- Per-cert frontmatter fields: version (semver-ish) and revised (ISO
  date). Rendered inline near the H1 title: "Revision X.Y · Updated
  YYYY-MM-DD · Changelog".
- New page: docs/pages/certs/changelog.mdx aggregating revision history
  across all certs with inaugural 2026-04-17 entry covering the
  feedback-integration-1.1 changes.
- vocs.config.tsx: Changelog added to sidebar under SEAL Certifications.

All five existing certs stamped at v1.1 (revised 2026-04-17). New
Identity & Accounts cert stamped at v1.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Regenerate build artifacts

- docs/pages/certs/index.mdx: generate-folder-indexes added Changelog row
- utils/fetched-tags.json: tags-fetcher regenerated tag map (added
  /certs/changelog entry; workspace-security replaced by
  identity-accounts; sectionMappings sort order shuffled)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add ir-2.1.1 threat model to Incident Response

Monitoring coverage is only meaningful if it's pointed at the right
things. The existing IR cert had team structure, contacts, monitoring,
alerting, and playbooks, but no control requiring an explicit threat
picture of protocol operations and external dependencies. This control
closes that gap and anchors the monitoring and playbook controls to a
known threat model.

- Insert new ir-2.1.1 (Threat Model for Protocol Operations) at the
  start of Section 2 (Monitoring, Detection & Alerting)
- Existing Section 2 controls shifted: old ir-2.1.1 to ir-2.1.2,
  ir-2.1.2 to ir-2.1.3, ir-2.1.3 to ir-2.1.4
- Evidence Tracker count 13 to 14 (template repo only)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Rewrite certs overview to align with program roadmap

The previous overview was written during RFC Phase (ended Dec 31, 2025)
and framed certifications as "proposed" and "being developed." The
framework is now stable, published, and moving into active certification
with accredited firms.

Rewritten to:
- Open with the same framing as the internal program-and-roadmap doc:
  code audits don't catch operational failures, certifications target
  that gap
- List the six modules (with the new Identity & Accounts and Incident
  Response updated to include threat modeling)
- Condense "How Certification Works" into a five-step engagement flow
  with EAS attestation
- Replace the RFC Phase section with a plain Program Status summary of
  where the program is now
- Trim outdated FAQ items (the "Q1 2026 rollout" question) and update
  wording throughout
- Link to the new /certs/changelog page for revision history

Shorter overall; aligned with the roadmap doc without duplicating its
operational detail.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add back protocol and auditor signup links to certs overview

Previous rewrite dropped these along with the RFC Phase framing. Adding
them back as a tight "Get Involved" section between Program Status and
FAQ.

Both entry points currently point at the same typeform
(securityalliance.typeform.com/CertsAuditor), matching the original
overview page. If protocols and auditors need distinct intake forms
later, the URL can be updated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Integrate PR feedback from template repo review

Mirrors template-repo commits acddf5c, 2d3a777, 5ae8d0f which applied
DicksonWu654's review feedback. Since v1.1 hasn't shipped yet, the
changelog entry for v1.1 is updated to reflect final state rather than
documenting an intra-PR iteration.

- sfc-devops-infrastructure: di-1.1.2 drops the supply-chain
  parenthetical (Section 2 already handles supply chain); di-1.1.4 and
  di-1.1.5 merged back into a single di-1.1.4 covering both the tool
  approval process and the approved-tools list; References section at
  the bottom removed (other certs don't carry References, so the
  inconsistency wasn't earning its keep)
- sfc-identity-accounts: ida-2.1.1 drops the "(subject to SIM-swap and
  interception)" parenthetical; ida-4.1.1 drops the inline "(coordinated
  with SFC - Incident Response monitoring)" parenthetical (the trailing
  IR coordination bullet still carries that point); "Related certs"
  list in the page body removed (cross-refs live inline in each
  vertical cert)
- sfc-incident-response: ir-2.1.1 threat model gains a baseline bullet
  on identifying single points of failure and highly centralized
  components across onchain and offchain layers (cross-chain messaging
  providers, oracle providers, critical infrastructure dependencies)
- changelog.mdx: v1.1 entry updated to reflect final merged state;
  DevOps control count is now unchanged at 16, workbook compat note
  flags the shifted IR Section 2 IDs

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Fix protocol signup typeform URL to CertsWaitlist

Both the protocol and auditor signup links in the certs overview were
pointing at the same auditor form (CertsAuditor). Protocols should
land on the waitlist form (CertsWaitlist) instead. Per PR #459 review
comment from DicksonWu654.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Add Attack Surface Overview page with interactive radial threat map

Visual security posture dashboard showing 12 attack vectors as a radial
diagram. Nodes are color-coded (red/amber/green) by posture state with
click-to-toggle and localStorage persistence. Clicking a node opens a
detail card with description, attack tags, and framework guide links.
Designed for CSOs to quickly assess and communicate security gaps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mark Attack Surface Overview as dev content

Adds dev: true flag to sidebar entry per contributing guidelines.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Replace selection ring with scale + glow effect on selected nodes

Selected nodes now scale up 10% and show a soft color-matched glow
instead of a detached ring outline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add GitHub Actions reminder for attack surface threat data changes

Posts an automated PR comment when threatData.ts is modified, reminding
contributors to include all required fields and verify framework links.
Follows the same pattern as the existing vocs-config-reminder workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address Sara first PR feedback item

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address Sara second PR feedback item

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Smooth-scroll detail card into view when a threat node is clicked

Clicking a node on the radial map showed the detail card below the
map, but on typical viewports the card landed below the fold, so it
wasn't obvious anything had happened. Use scrollIntoView with
block: "nearest" on the card when it mounts or the selected vector
changes, respecting prefers-reduced-motion.

Third PR feedback item addressed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Move attack-surface.mdx into intro/ folder and update links

Moved the page to sit alongside the other Introduction pages.
Updated sidebar link, internal cross-link in how-to-navigate, and
component import path to match the new location.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Use react-router Link for framework CTA to avoid full page reload

The detail card's framework link used a plain <a> tag which caused a
full page reload. Switched to react-router-dom's <Link> for client-side
navigation, consistent with the rest of the site.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add standard page components to Attack Surface Overview

Adds TagProvider, TagFilter, TagList, and ContributeFooter to match
the pattern used by all other Introduction pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…annel scope (#445)

Clarify that profile labels and platform status indicators are not proof of legitimacy, and state that unsupported platforms should be explicitly identified.
Adds TxScope to monitoring tools and wallet security tools pages.
TxScope is a Solana-native pre-signing transaction threat scanner
for Squads Protocol multisigs, filling the non-EVM tooling gap
noted in the current tools page.

Co-authored-by: black <bob@bobby.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Clarify hot vs cold wallet taxonomy

* Narrow hot vs cold wallet edits

---------

Co-authored-by: welttowelt <welttowelt@users.noreply.github.com>
* Add third party script security page in the frontend web app fw

* fix Further Reading link

* Fix links in web3-supply-chain-threats.mdx
* weekly cleanup:
- sync badges
- fix outputs spellchecker
- fix outputs linter
- sync contributing files
- sync tags

* Cleanup of the latest PR merged

* sync contributor badges with latest PRs

* Fix indentation
* feat: add forensic readiness page (closes #433)

* fix: add forensic readiness to sidebar in vocs.config.tsx (refs #457)
…dates (#425)

Bumps the npm_and_yarn group with 2 updates in the / directory: [dompurify](https://github.com/cure53/DOMPurify) and [flatted](https://github.com/WebReflection/flatted).


Updates `dompurify` from 3.3.0 to 3.3.3
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.3.0...3.3.3)

Updates `flatted` from 3.3.3 to 3.4.2
- [Commits](WebReflection/flatted@v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.3.3
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
- code-signing.mdx: Add GPG key generation, subkeys, YubiKey setup, passphrase management, key backup/recovery
- continuous-integration-continuous-deployment.mdx: Add SLSA provenance, SBOM generation, OIDC federation for cloud access
- repository-hardening.mdx: Add CODEOWNERS patterns, GitHub Advanced Security (CodeQL, secret scanning, dependency review), security policy template
- security-testing.mdx: Add severity thresholds table, Semgrep custom rules, false positive management, coverage and mutation testing
- Update contributors frontmatter: mattaereal as author, scode2277 as reviewer
- Replace discontinued keys.mailvelope.com with keyserver.ubuntu.com
- Fix CISA link text to match URL (Software Bill of Materials)
- Update expired nosemgrep example date to 2027-06-01
- Add note about simplified Semgrep rule example
The search index lives in docs/dist/.vocs/ (a hidden directory).
actions/upload-artifact@v4 excludes hidden files by default, so the
.vocs directory was missing from the uploaded artifact. This caused
the search index to be absent from preview deployments, breaking the
native search (/) on all preview URLs.

Adding include-hidden-files: true ensures the .vocs directory (and
any other hidden assets) are included in the artifact.
* feat: add llms.txt generator + llms-{framework}.txt for all the frameworks we have + changed titles to 2 pages as previously confusing

* Add branch-aware links + better hadle of contributing folder

* fix: making the generator inherit dev:true from parent sidebar blocks

* refactor: restructure llms output with per-page files, folder layout, and tighter routing index

* fix: make branch check stronger
…els (#473)

* fix: expand VPN services page with HTTPS vs VPN, metadata, threat models (closes #406)

* Update docs/pages/privacy/vpn-services.mdx

Co-authored-by: Sara Russo <sararusso984@gmail.com>

* refactor: split VPN services into subcategory pages per review feedback

Restructure vpn-services.mdx into a vpns/ directory with sub-pages:
- overview.mdx: entrance page with intro and links to subsections
- https-vs-vpn.mdx: HTTPS vs VPN comparison and metadata gap
- attack-surfaces-public-networks.mdx: public Wi-Fi risks
- when-to-use-vpn.mdx: threat model decision framework + choosing a VPN
- vpn-limitations.mdx: VPN limitations and DNS leaks
- vpn-providers-and-tools.mdx: recommended providers, tools, and resources

Update vocs.config.tsx with nested sidebar structure for VPN Services.
All new pages include outline: deep for subsection navigation.

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
Co-authored-by: Sara Russo <sararusso984@gmail.com>
…dates (#464)

Bumps the npm_and_yarn group with 3 updates in the / directory: [axios](https://github.com/axios/axios), [dompurify](https://github.com/cure53/DOMPurify) and [hono](https://github.com/honojs/hono).


Updates `axios` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.14.0...v1.15.0)

Updates `dompurify` from 3.3.3 to 3.4.1
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.3.3...3.4.1)

Updates `follow-redirects` from 1.15.11 to 1.16.0
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.11...v1.16.0)

Updates `hono` from 4.12.12 to 4.12.14
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.12...v4.12.14)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: dompurify
  dependency-version: 3.4.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: follow-redirects
  dependency-version: 1.16.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.12.14
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
sync badges
sync indexes
sync tags
fix spellchecker outputs
fix linter outputs

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
Extract §4 (Upgrade Governance) out of data-security-upgrade-checklist
into a standalone DevSecOps page focused on smart-contract upgrade
governance across the full proposal lifecycle. Add an interactive hero
graphic mapping threats onto a 4-stage SDLC, replace raw-markdown
checklists with a stateful ChecklistItem component, and extend the
content with material that consistently fails in practice but rarely
appears on upgrade checklists: invariant suites that run against live
mainnet state, and reproducible onchain calldata verified by CI.

Page: /devsecops/governance-proposal-security
Stages: Plan -> Build and Test -> Review & Audit ->
        Propose, Verify Onchain Calldata & Monitor

New components:
- <GovernanceSDLCPipeline /> - SVG pipeline with threat constellations,
  click-to-expand detail panel, keyboard nav, loop-back "feeds next
  cycle" arrow. Reuses categoryMeta from attack-surface for visual
  consistency. Stateless.
- <ChecklistItem title="..."> ... </ChecklistItem> - interactive
  labelled checkbox with localStorage-persisted state and
  aria-describedby. Replaces every raw markdown "- [ ]" item on the
  new page.

Migrations:
- docs/pages/devsecops/data-security-upgrade-checklist.mdx - section 4
  removed; page renamed to "Data Security Checklist" (URL preserved).
- docs/pages/devsecops/overview.mdx - dropped duplicate "What's inside
  DevSecOps" section; Contents list is the single entry point (8
  entries including the new page and Isolation & Sandboxing).
- vocs.config.tsx - sidebar entry added and old Data Security entry
  renamed.
- components/index.ts - exports the two new components.

Notable content:
- Stage 2: tests must exercise the actual deployment script, and
  fork-tests must execute the proposal's calldata at HEAD before
  running the integration + invariant suite.
- Stage 3: internal peer review of the proposal by a non-author
  reviewer; audit scope extends to deploy scripts and proposal payloads.
- Stage 4: reproducible calldata built locally + rebuilt in CI,
  compared byte-for-byte against what's onchain.
- Real-World Proposal Failures: Wormhole (Feb 2022), Nomad (Aug 2022),
  Compound cETH Proposal 117 (Aug 2022), Yearn Finance yUSDT (Apr 2023)
  - each framed around a specific SDLC failure mode.

Contributors:
- wrote: quillaudits, dickson, ElliotFriedman
- fact-checked: mattaereal

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
mattaereal and others added 25 commits September 14, 2026 17:26
Add a coverage work queue that lists unmitigated threats, undocumented
controls, empty frameworks, and Related frameworks links with no shared
node. Seed Wallet Security from the pages that actually teach custody
and signing. Cross-links to multisig, OpSec, and front-end come from
shared controls, not related-to edges.
Seed coercion and duress from the pages that teach wrench-attack
defense. Reuse the existing duress threat. Facility, counter-surveillance,
and hardware supply-chain stubs stay unmapped. Cross-links to Wallet
Security, OpSec, and multisig come from shared controls.
Seed custodial treasury from classification, registration, enhanced
controls, and large-transfer verification. Distinct from the protocol
multisig. Cross-links to multisig, Wallet Security, and IAM come from
shared assets and controls, not related-to.
Reuse the existing hiring-infiltration threat. Add the contributor-to-hire
path and continuous remote identity review from the TTP and mitigation
pages. Case studies stay unmapped. Cross-links to OpSec, IAM, and Incident
Management come from shared controls and the existing DPRK response.
Seed full-disk, hardware-backed keys, TLS/SSH, and cloud KMS custody.
Messaging, email, database, file, partition, and volume pages stay
unmapped. Disk encryption is not a hardware wallet. Cross-links to
OpSec and Infrastructure come from shared devices and cloud nodes.
…#640)

Seed default E2EE chat, VPN on untrusted networks, and digital-footprint
reduction. Data-removal, financial privacy, privacy OS, and VPN provider
catalogs stay unmapped. A VPN is not HTTPS. Discord is not E2EE.
Cross-links to Encryption, OpSec, Community, and Physical Security come
from shared devices, TLS, channels, and identity separation.
Seed adoption, published recovery address, and whitehat fund return.
Not a bug bounty and not a substitute for pause or review. Eligibility
checklist and on-chain registration walkthrough stay unmapped. No Nomad
incident node. Cross-links to Incident Management, smart contracts, the
protocol multisig, and governance come from shared exploit and recovery
nodes.
Pack AI Security, ENS, Guides, SSDLC, Threat Modeling, and Vulnerability
Disclosure as coherent first seeds. Prompt templates are not a control.
ENS resolution is not a signature. A bounty is not Safe Harbor. Product
guides, AI browsers, ENS cross-chain, and sourced incidents stay unmapped.
Default view is the multisig job, not every node. All is last. New chips
for AI agents, ENS, disclosure, and living threat models.

SFC modules are guidance nodes. Map nodes point at them with evaluated-by.
Do not copy cert checklist IDs onto map controls.

Coverage prints unique undirected related-framework pairs. Certs stay.
…tes (#623)

Bumps the pnpm-patch group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |
| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.7` |
| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.18.1` | `7.18.3` |
| [sharp](https://github.com/lovell/sharp) | `0.35.3` | `0.35.4` |
| [uuid](https://github.com/uuidjs/uuid) | `14.0.1` | `14.0.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.17` | `19.2.18` |
| [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.3` | `19.2.7` |
| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.3.2` | `4.3.3` |



Updates `react` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react)

Updates `@types/react` from 19.2.17 to 19.2.18
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 19.2.7 to 19.2.8
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom)

Updates `@types/react-dom` from 19.2.3 to 19.2.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `react-router-dom` from 7.18.1 to 7.18.3
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.3/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.3/packages/react-router-dom)

Updates `sharp` from 0.35.3 to 0.35.4
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](lovell/sharp@v0.35.3...v0.35.4)

Updates `uuid` from 14.0.1 to 14.0.2
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](uuidjs/uuid@v14.0.1...v14.0.2)

Updates `@types/react` from 19.2.17 to 19.2.18
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.2.3 to 19.2.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `tailwindcss` from 4.3.2 to 4.3.3
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: "@types/react"
  dependency-version: 19.2.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: react
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: react-dom
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: react-router-dom
  dependency-version: 7.18.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: sharp
  dependency-version: 0.35.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: tailwindcss
  dependency-version: 4.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
- dependency-name: uuid
  dependency-version: 14.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pnpm-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-patch group with 1 update in the / directory: [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials).


Updates `aws-actions/configure-aws-credentials` from 6.2.3 to 6.2.4
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](aws-actions/configure-aws-credentials@e6de054...cbe3b39)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: 6.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…eck (#631)

* docs(wallet-security): added separate section for dry-run recovery check

* docs(wallet-security): update dry-run bullet point in key generation sub section

* docs(wallet-security): removed redundant asterisks

* docs(wallet-security): minor writing style fixes

* docs(wallet-security): implemented changes suggested by frameworks-volunteer

* Update intermediates-and-medium-funds.mdx

---------

Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
* docs(supply-chain): add private registries and package mirrors

Four pages already recommend running a private registry without explaining
it: repository-hardening, security-testing, the dependency-attack runbook,
and third-party-script-security. The last of those points at Dependency
Awareness "for guidance on vendoring", which that page does not cover.
Dependency confusion is named twice across the repository and never
explained.

Adds a page covering what each arrangement gives a team (pull-through
cache, curated repository, vendoring), how registry routing closes
dependency confusion, why the registry itself joins the trust base, and the
operational failures that remove the properties it was deployed for.

Points the four existing mentions at the new page, and splits the
third-party-script-security reference so pinning still routes to Dependency
Awareness while vendoring routes here.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(supply-chain): narrow the pinning claim, drop second person

Address review nits on #627.

The dependency confusion section claimed a version pin does not address the
attack, which overstated it and contradicted the lockfile-timing paragraph
later on the same page. A lockfile with integrity hashes does catch a
substitution on later installs; the exposure is the resolution that writes
the lock, and a name that was never published publicly the moment an
attacker claims it.

Also replaces "gives you" with "provides" in the security-testing inbound
link, matching the third person the rest of the page uses.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(supply-chain): broaden ecosystem coverage for private registries

Address review feedback on PR #627:
- add Go and Cargo to namespace reservation and routing sections,
  with a comparison table (pip, npm, Go, Cargo) for replace-vs-extend
  resolution config
- explain why Solidity dependency confusion differs (Foundry pins by
  git commit; Hardhat inherits npm behavior)
- remove dead Microsoft private-feed link, add Go/Cargo reference links
)

* docs(wallet-security): add security best practices for hot wallets

* docs(wallet-security): minor acronym fix

* docs(wallet-security): implement requested changes.

* docs(wallet-security): removed password and minimal autolock bullet points

* docs(wallet-security): add password and minimal autolock bullet points

* Update sentence case to section header

* Remove attribution from cold-vs-hot-wallet.mdx

* Remove attribution from for-beginners-and-small-balances.mdx

---------

Co-authored-by: Sara Russo <sararusso984@gmail.com>
…up across 1 directory (#655)

Bumps the npm_and_yarn group with 1 update in the / directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.18.1 to 1.20.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.18.1...v1.20.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.20.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-minor group with 3 updates: [pnpm/action-setup](https://github.com/pnpm/action-setup), [orhun/git-cliff-action](https://github.com/orhun/git-cliff-action) and [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials).


Updates `pnpm/action-setup` from 6.0.10 to 6.1.0
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](pnpm/action-setup@0977fd9...ea17c68)

Updates `orhun/git-cliff-action` from 4.8.0 to 4.9.1
- [Release notes](https://github.com/orhun/git-cliff-action/releases)
- [Commits](orhun/git-cliff-action@f50e115...a9a9552)

Updates `aws-actions/configure-aws-credentials` from 6.2.4 to 6.3.0
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](aws-actions/configure-aws-credentials@cbe3b39...e125382)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-minor
- dependency-name: orhun/git-cliff-action
  dependency-version: 4.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-minor
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…up across 1 directory (#656)

Bumps the npm_and_yarn group with 1 update in the / directory: [sharp](https://github.com/lovell/sharp).


Updates `sharp` from 0.35.4 to 0.35.5
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](lovell/sharp@v0.35.4...v0.35.5)

---
updated-dependencies:
- dependency-name: sharp
  dependency-version: 0.35.5
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: bump vocs+waku

* chore: pin Node to 24 for CI and dev environments to make have succeeding build
…tes (#658)

Bumps the pnpm-minor group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1075.0` | `3.1142.0` |
| [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) | `3.1075.0` | `3.1142.0` |
| [mermaid](https://github.com/mermaid-js/mermaid) | `11.16.1` | `11.17.2` |
| [playwright](https://github.com/microsoft/playwright) | `1.61.1` | `1.63.0` |
| [cspell](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell) | `10.0.1` | `10.3.5` |



Updates `@aws-sdk/client-s3` from 3.1075.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/clients/client-s3)

Updates `@aws-sdk/lib-storage` from 3.1075.0 to 3.1142.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1142.0/lib/lib-storage)

Updates `mermaid` from 11.16.1 to 11.17.2
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.16.1...mermaid@11.17.2)

Updates `playwright` from 1.61.1 to 1.63.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.61.1...v1.63.0)

Updates `cspell` from 10.0.1 to 10.3.5
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/packages/cspell/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/commits/v10.3.5/packages/cspell)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pnpm-minor
- dependency-name: "@aws-sdk/lib-storage"
  dependency-version: 3.1142.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pnpm-minor
- dependency-name: mermaid
  dependency-version: 11.17.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pnpm-minor
- dependency-name: playwright
  dependency-version: 1.63.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pnpm-minor
- dependency-name: cspell
  dependency-version: 10.3.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pnpm-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: rebuild release flow around develop's history + small fix to previous changelog

* update v0.0.1 changelog readability
* docs(incident-management): add endpoint compromise runbook

The runbooks covered infrastructure and key compromise but not the
contributor workstation, which is where infostealer and fake-recruiter
intrusions actually land. malware.mdx covers the victim side; this is
the responder side.

Severity derives from the access tier the user holds rather than the
malware family, since access is observable in the first twenty minutes
and impact is not. Escalators cover ungated pipelines, sub-threshold
signers, and public channel control.

The credential revocation table is ordered because the common failures
are sequencing errors: rotating an SSH key before killing the live
session lets the attacker re-add it, and changing a password before
revoking sessions leaves the stolen cookie valid.

Containment forks on capability rather than doctrine, and handles the
already-powered-off device, which is the state malware.mdx produces.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): close NIST and CISA gaps in endpoint runbook

Checked the runbook against SP 800-61r3, SP 800-86, and the CISA
incident and vulnerability response playbooks. Four things were missing.

Evidence collection now runs in order of volatility per SP 800-86, so a
responder holding a live machine knows memory outranks disk rather than
working down an unordered list.

Eradication is gated on finishing the foothold inventory first, which is
the CISA sequencing rule. Rebuilding the laptop while an OAuth grant
survives moves the attacker off the device and leaves them in the
accounts, and the rebuild destroys the evidence that would have found
them.

The runbook had no way to close an incident. SP 800-61r3 makes improve a
standing function, and the repo's own runbook template asks for a
resolution checklist, so there is now a closing section covering the
incident log, post-mortem, indicator sharing, and the detection gap.

External notification was absent on the responder side even though
malware.mdx carries it for victims. Legal owns the decision, but the
clock starts at discovery, so it belongs in escalation.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): tighten prose in endpoint runbook

The closing section opened by negating ("an incident is not closed
because the laptop was rebuilt") and letting the next sentence carry the
correction, which is the same rhetorical move the key takeaway already
spends. Leads with the claim instead.

Also drops a filler "just", replaces an unclear line about evidence
surviving "without you" with what the rows actually do, and unpacks
"a deadline stays a choice" into plain terms.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): wire endpoint runbook to existing pages

The symptoms list describes lures this repo already documents with real
message screenshots, but nothing connected the two. Differentiation now
routes a suspicious meeting-link domain or fake recruiter task to the
DPRK playbook, and a Zoom screen-share request to ELUSIVE COMET, since
naming the campaign tells the responder which follow-on accounts to
check.

Both playbooks link back. ELUSIVE COMET previously ended at the malware
playbook, which is victim guidance, leaving no route to the org-side
process.

External notification points at the communications template and
communication strategies, which own wording, cadence, and spokesperson
while this runbook only covers the legal clock. Closing the incident
points at Lessons Learned for the review questions and blameless format.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): cut vague endorsement from differentiation

The paragraph added with the playbook cross-links leaned on "worth"
twice in four sentences and closed on a generic recommendation rather
than a reason. Says what the screenshots are for and stops there.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): cut repetition from endpoint runbook

"A stolen session cookie stays valid until revoked" was stated three
times: in the P4/P5 note, in step 4, and in row 1 of the revocation
table. Step 4 carried nothing else, since it only pointed at the section
immediately below it, so it is gone.

Two lines contradicted each other on the same phrase. Quick Reference
said access is observable within the first twenty minutes, then twenty
lines later said access is least understood during the first twenty
minutes. The second now makes its point about defaulting high without
re-litigating when access becomes knowable.

Step 2 explained the memory tradeoff twice in consecutive paragraphs.
General principle first, then the already-powered-off case as a short
consequence.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): match heading case to sibling runbooks

Six headings were sentence case while the ones inherited from the
template were title case, so the file was inconsistent with itself and
with all nine sibling runbooks, which title-case step headings too.

Claude-Session: https://claude.ai/code/session_01CPQ1FcHGiBKWPd8waT7uGx

* docs(incident-management): rework endpoint runbook after review

Addresses the steward review on #647 plus a blind cold-read, a
fact-check of the external citations, and a repo-wide duplication audit.

Citation was wrong. The volatility ordering credited NIST SP 800-86,
which never uses the phrase "order of volatility" and puts network
connections and login sessions ahead of memory because connections time
out. The term is RFC 3227's. Memory still leads here, since a full image
captures connections, sessions, and the process table, but that is now
stated as the reason rather than dressed up as NIST guidance.

Two orderings were backwards. The insider-threat warning sat below the
instruction to phone the user, so a responder working top to bottom had
already tipped off a suspected DPRK IT worker. The foothold-inventory
gate sat seventy lines after the revocation table it was meant to gate.
Both moved ahead of what they govern.

Session logs are now exported before revocation. Killing sessions can
truncate the sign-in records that show where the attacker connected
from, and the runbook previously collected them two sections later.

Severity drops to P1 and P2. Judging a colleague's access tier from
memory at 3am is how a signer gets filed as P3, and the review made the
case that broad internal access can outrank a signing key. Unclear
access now defaults to P1, and the separate escalator checklist folds
into the P1 row.

Step 1 splits into an org-side track that needs nothing from the user
and a person-side track that does, because the account is the urgent
part and the previous order made contact a prerequisite. Adds what to do
when the user stays unreachable, which the old text left open after
telling responders to keep going.

Adds the step that confirms compromise, which the runbook assumed and
never described, with a path for unmanaged devices that produce no EDR
signal. Insider determination stays with Legal and HR.

Overstated claims hedged: cookie survival is identity-provider
dependent, Entra revokes on password change; powering off does not erase
memory that hibernation and swap files still hold, so image the disk
either way; cloud 2FA backup restores the same seed rather than one
necessarily stolen.

Also: wallet assets must move, not just the session, when a hot wallet
is exposed; post-mortem gate follows the template's P1-P3 rather than
narrowing it; every bracketed value carries a suggested default and a
label, since three different ones all read "[X hours]"; known-clean
device is defined where four steps depend on it; headings are sentence
case per the style guide, which the sibling runbooks predate.

The password manager guide told responders to wipe a device that is
"suspected compromised", the opposite first action, which would destroy
the evidence this runbook collects. Split from the lost-or-stolen case.

* docs(incident-management): match checklist voice to sibling runbooks

The runbooks state actions in the imperative and keep items short:
"Remove compromised signer", "Rotate all secrets and tokens", and a
Prevention section of bare noun phrases. This runbook wrote its action
checklists as past participles instead, which read as verification
rather than instruction and ran twice as long.

Converted the action checklists to the imperative and Prevention to noun
phrases, leaving the two that really are verification gates, the
revocation confirmation and the return-to-service gate, as participles.
Average checklist item is down from 8.8 words to 7.9; siblings sit at
4.1 to 4.4.

Also cut eight blocks of prose that justified a decision rather than
changing one: the section preamble to Confirming compromise, the
restatement of why memory matters, the RFC 3227 note the numbered table
already carries, the remark about unassigned owners, and the NIST
citation behind Closing the incident, whose point is made by the
sentence before it.

Prose is 109 lines against 25 to 27 in the siblings. That gap is the
revocation reasoning, the containment fork, and the step that confirms
compromise; the siblings are shorter partly because they are thinner.

* docs(incident-management): re-check sessions after password rotation

Review raised that a service with no second factor lets a stolen
password open a new session right after the old one is killed. The
revocation table only covered OAuth tokens, which session revocation
also misses. Row 1 now says to re-check after row 8.

* docs(incident-management): say what removes a host foothold

Review asked what happens when the attacker has a backdoor on the host.
The foothold gating sentence only covered account-side persistence, so
nothing stated that network containment and the rebuild are what remove
a host foothold, and that rotating credentials does not.

* Add steward as reviewer

---------

Co-authored-by: Sara Russo <sararusso984@gmail.com>
- fix spellcheck & linter
- sync badges
- sync indexes and tags
- add main ready content to main
- fix overview of each framework file
# Conflicts:
#	docs/pages/config/contributors.json
#	docs/pages/guides/account-management/discord.mdx
#	docs/pages/wallet-security/intermediates-and-medium-funds.mdx
#	utils/fetched-tags.json
#	vocs.config.ts
@socket-security

socket-security Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Deploying frameworks with  Cloudflare Pages  Cloudflare Pages

Latest commit: d617641
Status: ✅  Deploy successful!
Preview URL: https://7e9fc709.frameworks-573.pages.dev
Branch Preview URL: https://develop.frameworks-573.pages.dev

View logs

@github-actions

Copy link
Copy Markdown

Release v0.0.2 is ready

Open the release PR into develop (title, body and release label are prefilled).

Merge the release PR into develop last, immediately before this PR. Tagging and the GitHub Release happen automatically once main has the new VERSION.

v0.0.2 is an automatic patch bump. For a minor or major, re-run Prepare Release with the bump input before merging the release PR.

Changelog preview

0.0.2 (2026-10-13)

New content

  • docs(supply-chain): add private registries and package mirrors (#627) by @s1ns3nz0
  • docs(wallet-security): add security best practices for hot wallets (#649) by @0xusmanf
  • docs(incident-management): add endpoint compromise runbook (#647) by @s1ns3nz0

Updated content

  • Update Discord Guide to match Discord's settings redesign (#613) by @NFTDreww
  • docs(wallet-security): added separate section for dry-run recovery check (#631) by @0xusmanf

Enhancements

Fixes

  • Fix: Make "developer-targeted intrusions" section visible on .org (#620) by @scode2277
  • Fix: make developer-targeted-intrusion section visible on .org (#628) by @scode2277

Other

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@scode2277
scode2277 merged commit 96d05aa into main Oct 13, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.