Safeguard
Compliance•

What should a vulnerability exception audit export contain?

A vulnerability exception audit export needs one row per decision: IDs, dates, approver, reason, evidence links and status. Fields and format tips.

Safeguard Security Team
4 min read

A useful exception audit export has one row per decision, with a stable ID, the finding, the asset, reason, approver, request and expiry dates, current status and links to evidence. It should be machine readable, include closed and expired items, and be reproducible for any past date.

Why the export matters more than the screen

Auditors rarely log in to your tool. They ask for a file, sample from it, then ask for proof on the sampled rows. If the export is thin, every sample turns into a scavenger hunt through chat and tickets.

Design the export for the sampler: every row should be answerable without a follow-up question.

Fields to include

FieldWhy an auditor wants it
Exception IDStable reference that never changes
Finding ID and advisory IDTies the decision to the specific issue
Asset or scopeShows what the exception covers and nothing more
Severity at approvalRecords what the approver saw at the time
Reason categoryNot reachable, no fix, compensating control, and so on
Justification textThe human explanation
Requester and approverShows separation of duties
Requested, approved, expires, closed datesShows timeliness and duration
StatusActive, expired, revoked, fixed
Evidence linksWhere to verify the claim
Renewal countReveals exceptions that never end

The related post on what fields belong in a risk acceptance record covers the record itself. This post is about the file you hand over.

Format choices

CSV is easiest for sampling in a spreadsheet. JSON suits automated checks and keeps nested evidence lists intact. Offer both if you can. Use ISO 8601 dates with a timezone so nobody argues about whether a day ended in London or New York.

If you publish exploitability statements as well, OpenVEX gives a structured place for them. Its specification requires a justification label or an impact statement whenever a statement says a product is not affected, which is a good model for the evidence column.

Make it reproducible

Auditors test a period, not today. Your export should accept a date range and an "as of" date, and return what was true then. If someone edits an exception after the fact, keep the history rather than overwriting it.

Include the export's own metadata: when it was generated, by whom, from which system, and the filter used. An export without provenance is just a spreadsheet.

Common gaps

  • Only active exceptions appear, so expired ones vanish
  • Approver shown as a team name, not a person or role
  • Evidence column holds "see ticket" with no link
  • Severity is today's value, not the value at approval

Sampling check before the audit

Pick ten rows at random and try to answer, from the export alone: who approved, on what basis, until when, and what proof exists. Any row you cannot answer is a gap to fix before an auditor finds it. See also exception audit trail: what an auditor can replay.

Safeguard's compliance and evidence automation is built to gather records like these, and its policies and gates keep the decisions enforceable.

Try it yourself

Click through it at your own pace, or open it full screen.

See how evidence maps to framework controls, which is the shape an auditor's request takes.

Quick check

Should the export include rejected requests?

Yes. Rejections show the control actually says no sometimes.

Is a PDF export enough?

Rarely. Auditors sample and filter, so a structured file is more useful than a formatted document.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.