Skip to content

cra-kit: correct Art. 14 reporting mechanics (SRP/CSIRT/EUVD) and remove deleted ROADMAP references - #603

Open
sameehj wants to merge 1 commit into
wolfSSL:masterfrom
sameehj:cra-reporting-accuracy
Open

cra-kit: correct Art. 14 reporting mechanics (SRP/CSIRT/EUVD) and remove deleted ROADMAP references#603
sameehj wants to merge 1 commit into
wolfSSL:masterfrom
sameehj:cra-reporting-accuracy

Conversation

@sameehj

@sameehj sameehj commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #574. Fixes a systematic inaccuracy in the CRA kit and cleans up references to ROADMAP.md (removed in this PR).

  • Correct the Art. 14 reporting mechanic. The kit previously described reports as going "to ENISA" directly. Under Art. 14/16 a manufacturer files via the ENISA Single Reporting Platform (SRP) to the CSIRT designated as coordinator, with ENISA notified simultaneously; fixed vulnerabilities are then published to the EUVD. Corrected across the shortlist, cheat sheet, glossary, slide outline, and SKILL.md.
  • vulnerability-handling-process.md: adds a "how a report is filed (SRP → CSIRT + ENISA → EUVD)" section; adds the severe-incident track (Art. 14(3), 1-month final report); reframes on-call from a staffing gap to wolfSSL's existing follow-the-sun coverage plus an explicit compliance commitment; updates the diagram, SLA table, and references.
  • Status change (please review): flips the vulnerability-handling headline from 🟡 "public SLA pending leadership approval" to a ✅ "wolfSSL Inc. commits to Art. 13/14 compliance" statement, and drops the "(proposed; pending leadership approval)" qualifier from the SLA section. 00-INDEX.md is updated to match so the index and the document agree.
  • Ties the EU Authorised Representative to the reporting end-point (Art. 14(7)): since wolfSSL Inc. has no EU main establishment, the AR's Member State determines the coordinator CSIRT.
  • Glossary: new SRP / CSIRT / EUVD entries; tightened support-period wording to match Art. 13(2).
  • conformity-assessment-route.md: removes internal-correspondence detail from a customer-facing template.
  • Removes ROADMAP.md and all remaining links/text references to it.

Test plan

  • cra-kit/scripts/validate.sh passes (auditor packet validation OK)
  • cbom-draft.cdx.json still parses as valid JSON
  • No remaining ROADMAP references in cra-kit/
  • 00-INDEX.md status matches vulnerability-handling-process.md

@sameehj
sameehj force-pushed the cra-reporting-accuracy branch from e811cee to 84026d1 Compare July 17, 2026 12:21
Fix a systematic inaccuracy across the kit: Art. 14 reports are not sent
"to ENISA" directly. They are filed via the ENISA Single Reporting Platform
(SRP) to the CSIRT designated as coordinator, with ENISA notified
simultaneously (Art. 14/16), and fixed vulnerabilities are published to the
EUVD.

- vulnerability-handling-process.md: add "how a report is filed"
  (SRP -> CSIRT + ENISA -> EUVD) section; add the severe-incident track
  (Art. 14(3), 1-month final report); reframe on-call from a staffing gap
  to follow-the-sun coverage plus a compliance commitment; update diagram,
  SLA table, and references.
- Link the EU Authorised Representative appointment to the coordinator-CSIRT
  reporting end-point (Art. 14(7)) in eu-authorised-representative.md.
- Correct "notify ENISA" / "24h ENISA reporting" wording in the shortlist,
  cheat sheet, glossary, slide outline, and SKILL.md.
- Add SRP / CSIRT / EUVD glossary entries; tighten support-period wording to
  match Art. 13(2) (at least 5 years unless shorter expected lifetime).
- Remove internal-correspondence detail from conformity-assessment-route.md.
- Delete ROADMAP.md and remove all remaining references to it.

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>

@wolfSSL-Fenrir-bot wolfSSL-Fenrir-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fenrir Automated Review — PR #603

No scan targets match the changed files in this PR. Review skipped.

@sameehj
sameehj requested a review from MarkAtwood August 21, 2026 14:29
@MarkAtwood

MarkAtwood commented Aug 21, 2026

Copy link
Copy Markdown

Superseded. I had pushed these fixes onto this branch, which was the wrong call: it took over Sameeh's PR and left him unable to approve his own work. The branch is reset to his commit and the same findings are now review suggestions he can apply directly. Original text below for the record.


Direction is right and I've landed it. The SRP/CSIRT correction is worth having
in before Art. 14 applies on 11 September, so rather than round-tripping I pushed
the fixes to your branch directly. Details so nothing is a surprise.

Citations corrected. These were the substantive ones:

  • EUVD publication is Art. 17(5), not 16(2). 16(2) is CSIRT-to-CSIRT
    dissemination. 17(5) also has a qualifier worth keeping: ENISA adds the entry
    "in agreement with the manufacturer". Also noted the EUVD itself is
    established under NIS2 Art. 12(2), not by the CRA.
  • Severe-incident deadlines are Art. 14(4)(a)-(c), not 14(3). 14(3) is the
    duty to notify; the one-month final report is 14(4)(c). Your 14(2)(a)-(c) cites
    on the 24h/72h/14-day rows were right, since that's the vulnerability track.
  • Support period is Art. 13(8). 13(2) is the risk-assessment duty. That one
    was pre-existing in the glossary, not yours.

Two things that would have misled a reader.

Art. 14(7) isn't a single AR rule. With no EU main establishment it's an ordered
cascade: authorised representative, then importer, then distributor, then user
count. I've stated the cascade.

More important, ENISA's guidance says coordinator-CSIRT validation runs in
parallel
with reporting and is "not a prerequisite for fulfilling the CRA
reporting obligation". As written it read as a gate on filing, which is the kind
of thing that costs someone the 24-hour clock. Also worth knowing: ENISA's "AR"
in the SRP docs is Assigned Representative, a platform seat, not the Art. 18
authorised representative. Easy trap, flagged inline now.

One place the correction overshot. Art. 14(1) requires notification
"simultaneously to the CSIRT designated as coordinator ... and to ENISA", and
14(7) has it "simultaneously accessible to ENISA". So ENISA is a co-addressee by
statute, not a CC, and "reports are not sent to ENISA directly" swings too
far the other way. Reframed as: one submission via the SRP satisfies both. The
old text was imprecise about the mechanism, not wrong about ENISA.

Nits: canonical SRP URL (yours 301-redirects), and the No ─▶ standard line
in the ASCII box was 19 columns against an 18-column border. It was 17 before, so
the edit flipped the error rather than fixing it. Realigned.

Added: Art. 69(3) and Art. 71(2) to the references. Worth having explicitly,
because 69(3) derogates from the usual grandfather rule and applies Art. 14 to
products placed on the market before 11 Dec 2027. That means from 11
September the 24-hour clock covers the existing installed base, not just new
releases.


What I pulled back out, and why.

The status flip to a committed Art. 13/14 statement, and the on-call rewrite, are
reverted. Not because they're wrong. Because they're public compliance
commitments rather than accuracy corrections, and they should carry their own
sign-off rather than ride in on a docs PR. Please do re-raise them separately.

One specific thing to fix before that lands: the PR asserted that the
acknowledgement and triage targets are "reflected in the public CVD policy at
/.well-known/vulnerability-disclosure-policy.txt". They aren't. The published
policy commits to acknowledging "without undue delay" and states no hour targets
at all; "triage" doesn't appear on the page. An auditor follows that link and the
packet takes the credibility hit. Either the numbers go on the published policy
first, or the claim comes out.

Related and worth a follow-up regardless: §4 of that same live policy still says
"We report actively exploited vulnerabilities to ENISA in accordance with Article
14" — exactly the phrasing this PR corrects in the kit. The kit and the page it
cites as a reference template now disagree, so the same fix wants to land on
wolfssl.com.

Separately, a decision that lands on your AR bullet: we're not appointing an
Art. 18 authorised representative. Art. 18(1) says a manufacturer may appoint
one, and there's no "shall appoint" anywhere in the CRA. I removed the bullet
tying the reporting end-point to an AR appointment; a follow-up PR restates
wolfSSL Inc.'s position and fixes the eleven places the kit told customers an AR
was required.

MarkAtwood
MarkAtwood previously approved these changes Aug 21, 2026

@MarkAtwood MarkAtwood left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mechanics corrections are right and verified against the OJ text. Fixes pushed to the branch; status change deferred to its own PR as noted above.

@MarkAtwood MarkAtwood left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the mess on your branch, that was my doing and you were right to call it. I have reset the branch back to your commit, so this is yours again and you can merge it once these are in.

The SRP/CSIRT direction is right and worth landing before Art. 14 applies on 11 September. Findings below are mostly one-click suggestions. The two that matter are the CVD policy claim and three article cites.

Numbers verified against the OJ text of Regulation (EU) 2024/2847 and the latest consolidated 2019/1020.

Comment thread cra-kit/CRA-Supply-Chain-Glossary.md
Comment thread cra-kit/CRA-Supply-Chain-Glossary.md
@MarkAtwood
MarkAtwood dismissed their stale review August 22, 2026 20:58

Downgrading to comments. None of these block the merge; the citation corrections and the CVD-policy wording will land in a follow-up PR so this can go out for the webinar. Suggestions remain inline for reference.

@MarkAtwood MarkAtwood left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving to unblock the webinar. The SRP/CSIRT correction is the right direction and is a clear improvement on what is on master.

Inline suggestions above are not blockers and stay for reference. I will land them in a follow-up PR of my own rather than touching this branch: three article citations (EUVD is 17(5) not 16(2), severe-incident deadlines are 14(4)(c) not 14(3), support period is 13(8) not 13(2)), the Art. 14(7) four-step cascade, the SRP validation wording, and the ASCII box alignment.

One to carry into whatever PR re-raises the status change: the published CVD policy still commits only to acknowledging "as they come in", with no hour targets, so the sentence claiming the 24h/72h targets are reflected there needs the numbers published first or the claim dropped.

@MarkAtwood

Copy link
Copy Markdown

Merging with an admin override, and that is on me.

I pushed commits to this branch earlier, which I should not have done on someone else's PR, then pushed again to reset it back to @sameehj's commit. Branch protection requires the last push to be approved by someone other than the pusher, so my own approval does not count and this cannot merge normally. Sorry for the churn.

Rather than make Sameeh push again to work around my mistake, I am overriding. CI is green across all 200+ jobs and the commit is entirely his.

The citation corrections and the CVD-policy wording are deferred to a follow-up PR of mine. They are not blockers and this should not wait on them.

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.

4 participants