Turn raw findings into a one-page vulnerability risk update by freezing a reporting cutoff, resolving duplicate IDs and status changes, translating each material finding into a plain-language harmful outcome, and reconciling the service inventory. Show verified open findings, investigations and fixes awaiting verification separately. Each number on the page should trace to a row and evidence date in a restricted register. The finished page is a reproducible period snapshot, not a compressed scanner export.
The method changes when the underlying records are weak. If the assessed revision is not mapped to a deployment, say that production exposure is unknown. If the service inventory is incomplete, name the missing denominator rather than publishing a confident coverage percentage. The CEO's choice between business responses belongs in a separate decision brief; this page shows how the report's facts and counts were made. NIST's Cybersecurity Framework FAQ discusses leadership's role in risk management, but the format here is an editorial worksheet, not an official NIST template.
Freeze the evidence before summarizing it
The inputs are the in-scope production-service inventory, assessment records, finding ledger, reviewer decisions and fix-verification records. The AppSec lead sets a UTC cutoff and saves the source export. Every finding needs a stable ID, a first-seen time, a current disposition and a link to its evidence. A candidate alert is a question. An investigation is unresolved. Only a finding supported by the stated evidence and accepted under the team’s review criteria enters the verified-open count; describe review as independent only when it was. A rejected claim stays in history; a duplicate points to the surviving ID.
For each surviving finding, the working register should contain:
| Field | Record before drafting | What the reader may be told |
|---|---|---|
| Scope | Service, assessed revision, policy and deployed-artifact mapping | Whether the assessed path is known to be deployed |
| Claim | Actor, operation, affected asset and relevant controls | The plausible harmful outcome, with prerequisites |
| Evidence | Source/configuration path, reviewer, decision date and untested assumptions | Verified, investigating or unknown—not “exploited” without runtime evidence |
| Work | Owner, action, merged revision, reassessment and release evidence | Open, fix pending verification, or verified fixed |
| History | Duplicate parent, rejection reason and reopen events | Which rows count once and which do not count as vulnerabilities |
Keep impact and practical difficulty apart. FIRST's CVSS v4.0 specification separates vulnerability characteristics, threat and environmental context; a base score alone cannot tell you whether a customer-facing route is deployed or whether an attacker has the needed access.
Work one illustrative ledger into report lines
Illustrative only. Birch Cloud, the records, dates and counts below are invented teaching examples, not CodeSecPilot results or customer statistics. At the 18 October cutoff, the company has eight inventoried production services. The agreed source-and-policy review was completed for six on pinned revisions during 11–18 October. The billing batch service and partner gateway were not reviewed. The inventory denominator is unchanged from the preceding cutoff.
The clean ledger below is the result of reconciliation. Here is the deliberately messy export that precedes it. The reporting period is 11 October 17:00 through 18 October 17:00 UTC, with the end included and the start excluded for period events. RB-03 and WK-11 were approved and open at the starting cutoff. Event times and receipt times are retained separately; this snapshot uses evidence received by its cutoff.
| Received UTC | Export event | Reconciliation decision |
|---|---|---|
| 12 Oct 09:00 | AK-12 approved; event ev-101 |
Add one new approved finding. |
| 12 Oct 09:02 | AK-12 approved; event ev-101 again after retry |
Same event identity: zero additional findings or approvals. |
| 13 Oct 14:00 | AK-13 linked as duplicate of AK-12 | Keep alias/history; count the surviving finding once. |
| 14 Oct 11:00 | RB-03 change merged | Open finding, with verification pending. A merge is not a closure event. |
| 15 Oct 10:00 | WH-09 investigation opened | One unresolved investigation, outside approved findings. |
| 16 Oct 16:00 | LG-05 ticket closed, reason blank | Ask for disposition; “closed” alone cannot enter the fixed numerator. |
| 17 Oct 09:00 | LG-05 reviewer records rejection and escaping evidence | Classify the prior close as rejection; no vulnerability fixed. |
| 18 Oct 15:00 | WK-11 reassessment approved, release mapping attached | Under the evidence then available, one verified closure. |
| 18 Oct 17:12 | RB-03 reassessment and deployment evidence received | After this snapshot’s cutoff. Update operational status now and account for the closure in the next period; do not move the cutoff to improve the result. |
Deduplication happens at two levels: ev-101 is a repeated event, while AK-13 is a separate alert that alleges the same underlying condition. Dropping every repeated ID would also lose legitimate later state changes. Replay each surviving finding's ordered events, retaining the reason and evidence for its final state.
| Reconciled row at cutoff | Evidence and disposition | Treatment in the update |
|---|---|---|
| AK-12, key broker | New approved finding. The reviewed client omits the scope field after a user selects “read only”; the deployed backend then defaults the key to write scope. No misuse is established in the reviewed evidence. | One new verified, open risk; owner is identity engineering. |
| AK-13, second alert on the same path | Reviewer links it to AK-12; no distinct condition. | Duplicate pointer only; add zero to finding counts. |
| RB-03, role broker | Previously approved excessive invite permission. A fix merged, but the new path and deployed artifact have not been checked. | Still open, with fix verification pending; do not call it fixed. |
| WH-09, webhook handler | Possible timestamp-validation gap; reviewer has not resolved the effective control. | One investigation, outside the verified-open count. |
| LG-05, log formatter | Reviewer finds the relevant output is escaped; alert rejected with evidence. | History only; not a new or fixed vulnerability. |
| WK-11, workspace token | Prior approved finding; reviewer confirms the original path is prevented in the new revision and deployment owner maps it to production. | One verified fixed this period. |
The roll-up is therefore two approved findings still open, including one pending fix verification; one new verified, one verified fixed, one investigation, one rejection, and one duplicate. “Pending fix verification” is a subset of open findings, not a third open issue. No one executed an illustrative attack against production. The reviewer should check that the AK-12 conclusion really follows when the field is absent and that the deployed request path uses the assessed code; a line in source alone does not establish a production exploit.
Translate AK-12 from a tool label into a sentence a service owner can act on: “A customer automation key requested as read-only may receive write permission when its scope field is omitted; a reviewed path supports this in the deployed key service.” State the practical condition: the requester must be able to create or use such a key. Do not write “all customer keys are writable,” because the ledger has not established that. The identity owner can change the default and the reviewer can check the new revision and deployed artifact. Preserve the exact code and policy references in the restricted register.
Fill the one-page report from the reconciled register
The page needs only the material rows, period changes, coverage and next check. Link to the full register for the rest. A useful copyable skeleton is:
ONE-PAGE APPLICATION RISK UPDATE — [UTC cutoff] — [audience]
Material open risk: [ID, harmful outcome, affected service, prerequisites]
Evidence/deployment: [what is verified; what remains unknown]
Response: [owner, action, date, positive closure check]
Other open/pending: [ID, why still open, next check]
Investigations: [count, material unknown, owner/date]
Change since [prior cutoff]:
New verified [n]; verified fixed [n]; reopened [n]
Approved open [n], of which fix verification pending [n]
Duplicates/rejections excluded from these counts [n/n]
Coverage: [reviewed services / inventoried production services], [method/window]
Named exclusions and denominator change: [services and reason]
Action by [date]: [owner and required evidence]
Restricted register: [link]
For Birch Cloud, the filled page is:
ONE-PAGE APPLICATION RISK UPDATE — illustrative, 18 October 2026 17:00 UTC
AK-12: A read-only customer automation key may receive write scope when
the scope field is omitted. Reviewed source and policy path, mapped to
the deployed key broker; no misuse established in reviewed evidence.
Identity owner changes the
default; AppSec checks the new revision and deployment by 22 October.
RB-03: Excessive invite permission remains open. Fix merged; reassessment
and deployment check due 21 October. It is not a verified fix yet.
WH-09: Webhook timestamp control under investigation; reviewer resolves
the effective control by 21 October. Not counted as a verified finding.
Since 11 October: new verified 1; verified fixed 1 (WK-11); reopened 0.
Approved open 2, including 1 pending fix verification. Duplicate 1;
rejected alert 1, both excluded from vulnerability counts.
Coverage: 6 / 8 inventoried production services completed the declared
source-and-policy review on pinned revisions, 11–18 October. Billing
batch and partner gateway unreviewed; owners/dates in restricted register.
Denominator unchanged. Next evidence review: AppSec lead, 22 October.
Restricted register: [internal link]
“Six of eight reviewed” describes the agreed assessment activity, not six secure services or complete control coverage. If one service is added to production tomorrow, the next denominator is nine unless the inventory owner has evidence it is outside the stated scope. Keep the old and new denominators visible before comparing ratios. NIST SP 800-137 treats asset and control visibility as part of continuous monitoring; NIST SP 800-55 Vol. 1 discusses measure quality and interpretation.
Correct a wrong snapshot without rewriting history
On 19 October at 09:00 UTC, the platform owner finds that WK-11's attachment mapped the corrected artifact to staging, not production. The closure was unsupported at the original cutoff. That is a correction to a prior assertion, unlike RB-03's valid evidence arriving at 17:12 after the cutoff.
The report owner preserves version 1 and issues version 2 with this note:
Correction issued 19 October 09:30 UTC, for the 18 October 17:00 snapshot. WK-11's production deployment mapping was incorrect. Its source correction had been reassessed, but production closure was unestablished. Approved open findings change from 2 to 3; verified fixes in the period change from 1 to 0; the subset awaiting completed closure evidence changes from 1 to 2 (RB-03 and WK-11). New verified findings remain 1, investigations 1, duplicates 1 and rejections 1. Coverage remains 6/8. The platform owner must establish WK-11's production artifact before closure can be restored.
The stock calculation makes the error visible. Two findings were open at the starting cutoff. Original report: 2 + 1 new − 1 fixed = 2 open. Corrected report: 2 + 1 − 0 = 3 open. There was no new vulnerability introduced on 19 October, so this correction is not counted as a newly discovered finding. Nor is it a proven regression: the earlier production closure was never established.
At the next reporting cutoff, RB-03's 17:12 evidence can count as a closure if it remains valid. It must not appear both as a corrected prior-period fix and a new-period fix. Keep an event's effective time, receipt time, reporting assignment and correction reference so this choice is auditable.
Before issuing either version, have one reviewer reconstruct the totals from the events and another accountable owner confirm the inventory denominator. Ask “which evidence lets this row change state?” for every closure. A quiet scan is not a missing event to fill in by inference.
Send the page to the named service and risk owners with the restricted register link. For the subsequent leadership conversation, use how to report application security risk to a CEO. For defensible trend numbers, use AppSec metrics that show progress without hiding gaps.