UNPKG

ssvc

Version:

TypeScript implementation of SSVC (Stakeholder-Specific Vulnerability Categorization). A prioritization framework to triage CVE vulnerabilities as an alternative or compliment to CVSS

219 lines (176 loc) 5.32 kB
--- generated: true source: methodologies/coordinator_publication.yaml generator: scripts/generate-plugins.ts lastGenerated: 2025-09-01T14:11:04.933Z generatedFiles: typescript: path: /home/chris/github/typescript-ssvc/src/plugins/coordinator_publication-generated.ts checksum: 920af7a060f9ffbaf15a225d2086daab6f0386f9 --- # Coordinator Publication CERT/CC Coordinator Publication Decision Model **Version:** 1.0 **URL:** https://certcc.github.io/SSVC/howto/publication_decision/ ## Decision Tree ```mermaid flowchart LR 0{SupplierInvolvementLevel} 1{ExploitationStatus} 2{PublicValueAddedLevel} 3[dont_publish] 4[publish] 5[publish] 6{PublicValueAddedLevel} 7[dont_publish] 8[publish] 9[publish] 10{PublicValueAddedLevel} 11[publish] 12[publish] 13[publish] 14{ExploitationStatus} 15{PublicValueAddedLevel} 16[dont_publish] 17[dont_publish] 18[publish] 19{PublicValueAddedLevel} 20[dont_publish] 21[publish] 22[publish] 23{PublicValueAddedLevel} 24[publish] 25[publish] 26[publish] 27{ExploitationStatus} 28{PublicValueAddedLevel} 29[dont_publish] 30[dont_publish] 31[publish] 32{PublicValueAddedLevel} 33[publish] 34[publish] 35[publish] 36{PublicValueAddedLevel} 37[publish] 38[publish] 39[publish] 0 -->|fix_ready| 1 1 -->|none| 2 2 -->|limited| 3 2 -->|ampliative| 4 2 -->|precedence| 5 1 -->|public_poc| 6 6 -->|limited| 7 6 -->|ampliative| 8 6 -->|precedence| 9 1 -->|active| 10 10 -->|limited| 11 10 -->|ampliative| 12 10 -->|precedence| 13 0 -->|cooperative| 14 14 -->|none| 15 15 -->|limited| 16 15 -->|ampliative| 17 15 -->|precedence| 18 14 -->|public_poc| 19 19 -->|limited| 20 19 -->|ampliative| 21 19 -->|precedence| 22 14 -->|active| 23 23 -->|limited| 24 23 -->|ampliative| 25 23 -->|precedence| 26 0 -->|uncooperative_unresponsive| 27 27 -->|none| 28 28 -->|limited| 29 28 -->|ampliative| 30 28 -->|precedence| 31 27 -->|public_poc| 32 32 -->|limited| 33 32 -->|ampliative| 34 32 -->|precedence| 35 27 -->|active| 36 36 -->|limited| 37 36 -->|ampliative| 38 36 -->|precedence| 39 ``` ## Enums ### SupplierInvolvementLevel - fix_ready - cooperative - uncooperative_unresponsive ### ExploitationStatus - none - public_poc - active ### PublicValueAddedLevel - limited - ampliative - precedence ## Priority Mapping - **publish** → high - **dont_publish** → low ## Usage ### Direct Plugin Usage ```typescript import { DecisionCoordinatorPublication } from "ssvc"; const decision = new DecisionCoordinatorPublication({ // Add parameters based on methodology }); const outcome = decision.evaluate(); console.log(outcome.action, outcome.priority); ``` ### Using the Generic API ```typescript import { createDecision } from "ssvc"; const decision = createDecision("coordinator_publication", { // Add parameters based on methodology }); const outcome = decision.evaluate(); console.log(outcome.action, outcome.priority); ``` ## Vector String Support This methodology supports SSVC vector strings for compact representation and interchange. ### Parameter Abbreviations | Parameter | Abbreviation | Value Mappings | | -------------------- | ------------ | -------------------------------------------------------- | | supplier_involvement | SI | fix_ready→F, cooperative→C, uncooperative_unresponsive→U | | exploitation | E | none→N, public_poc→P, active→A | | public_value_added | PV | limited→L, ampliative→A, precedence→P | ### Vector String Format ``` COORD_PUBv1/[parameters]/[timestamp]/ ``` ### Example Usage ```typescript import { DecisionCoordinatorPublication } from "ssvc"; // Generate vector string from decision const decision = new DecisionCoordinatorPublication({ supplier_involvement: "fix_ready", exploitation: "none", public_value_added: "limited", }); const vectorString = decision.toVector(); console.log(vectorString); // Output: COORD_PUBv1/SI:F/E:N/PV:L/2024-07-23T20:34:21.000Z/ // Parse vector string to create decision const parsedDecision = DecisionCoordinatorPublication.fromVector( "COORD_PUBv1/SI:F/E:N/PV:L/2024-07-23T20:34:21.000Z/", ); const outcome = parsedDecision.evaluate(); ``` ## File Integrity Verification The generated files in this methodology have SHA1 checksums for verification: ### Checksum Verification Commands Verify the integrity of generated files using these commands: ```bash # Verify TypeScript plugin file echo "920af7a060f9ffbaf15a225d2086daab6f0386f9 /home/chris/github/typescript-ssvc/src/plugins/coordinator_publication-generated.ts" | sha1sum -c ``` **Why This Matters**: Checksum verification ensures that generated files haven't been tampered with or corrupted. This is important for: - **Security**: Detecting unauthorized modifications to generated code - **Integrity**: Ensuring files match their expected content exactly - **Trust**: Providing cryptographic proof that files are authentic - **Debugging**: Confirming file corruption isn't causing unexpected behavior Always verify checksums before deploying or using generated files in production environments.