This comprehensive reference documents the complete badge and modal system for CVE analysis, organized into distinct categories serving different data scopes and user workflows. The system uses a consolidated modal architecture where related functionality is grouped into cohesive user experiences rather than scattered individual notifications.
System Organization:
Each table uses consistent columns to describe badge/modal functionality:
Column | Description |
---|---|
Badge Name | The visual badge text and modal category |
Granular Check | Specific condition or data analysis performed |
Tooltip or Tab Content Example | Tooltip text (hover) vs Tab content (click/view) |
Root Cause Owner | Who addresses the underlying issue |
Dev Handled | Processing status (✅ Automated, ❌ Manual, ℹ️ Informational) |
Audiences | Target stakeholders (👤 Users, 🔧 Developers, 🗃️ Data Providers) |
Modal Badges (Consolidated Experience):
Individual Badges (Immediate Visibility):
Badge Name | Granular Check | Tooltip or Tab Content Example | Root Cause Owner | Dev Handled | Audiences |
---|---|---|---|---|---|
⚙️ JSON Generation Rules | Unified modal with up to 3 tabs | Tooltip: “JSON Generation Rules detected - Wildcard Generation + Update Pattern Detection (5 transformation(s)). Click for detailed examples.” | Tool Development | ✅ | 👤🔧 |
→ Tab 1: All Versions Pattern | defaultStatus with no versions OR version: “” OR lessThanOrEqual: “” | Tab Content: INPUT/OUTPUT JSON transformations showing “defaultStatus: ‘affected’” → CPE base string with vulnerable: true | Tool Development | ✅ | 👤🔧 |
→ Tab 2: Wildcard Generation | Wildcard patterns in version fields expand to ranges | Tab Content: INPUT/OUTPUT JSON showing “version: ‘2.’” → “versionStartIncluding: ‘2.0’, versionEndExcluding: ‘3.0’”* | Tool Development | ✅ | 👤🔧 |
→ Tab 3: Update Pattern Detection | Version strings with update patterns normalize | Tab Content: INPUT/OUTPUT JSON showing “version: ‘3.3 Patch 1’” → “version: ‘3.3’, update: ‘patch1’” | Tool Development | ✅ | 👤🔧 |
Badge Name | Granular Check | Tooltip or Tab Content Example | Root Cause Owner | Dev Handled | Audiences |
---|---|---|---|---|---|
⚫ Supporting Information | Unified modal with up to 4 tabs | Tooltip: “Supporting Information available - Versions Array Details + CPE Base Strings Searched (3 item(s)). Click for detailed technical insights and debugging information.” | Tool Development | ℹ️ | 👤🔧 |
→ Tab 1: Versions Array Details | CVE Affected CPES Data + Versions Array Structure | Tab Content: Formatted display of “2 CPEs detected” with expandable CPE list + “5 version entries” with structured version array | Tool Development | ℹ️ | 👤🔧 |
→ Tab 2: CPE Base Strings Searched | CPE base string processing (used/culled counts) | Tab Content: “3 used, 1 culled” with expandable lists showing used CPE strings vs culled ones with reasons | Tool Development | ℹ️ | 👤🔧 |
→ Tab 3: Data Transformations | Source to CPE transformations (curation + unicode) | Tab Content: Table showing original→transformed pairs like “MongoDB Inc” → “mongodb”, “Café Server” → “Cafe Server” | Tool Development | ✅ | 👤🔧 |
→ Tab 4: API Results | CPE API query results and error tracking | Tab Content: “5 successful, 2 errors” with expandable error details showing specific CPE strings and API error messages | Tool Development | ℹ️ | 👤🔧 |
Badge Name | Granular Check | Tooltip or Tab Content Example | Root Cause Owner | Dev Handled | Audiences |
---|---|---|---|---|---|
🟪 🔍 Source Data Concerns (X) | Unified modal with up to 10 tabs | Tooltip: “Source data quality issues detected 5 issues: Placeholder Data, Version Text Patterns Click to view detailed LINT analysis” | External Source | ❌ | 👤🔧🗃️ |
→ Tab 1: Placeholder Data Detected | Vendor/product placeholder values (n/a, -, etc.) | Tab Content: Field-by-field analysis showing “Vendor field contains placeholder value ‘n/a’ which prevents proper CPE matching” | External Source | ❌ | 👤🗃️ |
→ Tab 2: Version Text Patterns | Text indicators + invalid characters in versions | Tab Content: Character validation showing “Invalid characters in version: <script> (chars: <, >, /) - prevents proper processing” | External Source | ❌ | 👤🗃️ |
→ Tab 3: Comparator Patterns | Mathematical operators in version strings | Tab Content: Version analysis showing “Version ‘>= 1.0’ contains comparator ‘>=’ that prevents exact version matching” | External Source | ❌ | 👤🗃️ |
→ Tab 4: Version Granularity | Inconsistent version part counts within same base | Tab Content: Granularity analysis showing “3.3: 2-part vs 3-part versions (3.3 Patch 2, 3.3.0)” | External Source | ❌ | 👤🗃️ |
→ Tab 5: Wildcard Branches | Wildcard pattern routing validation | Tab Content: Wildcard analysis showing detected patterns and routing decisions | External Source | ❌ | 👤🗃️ |
→ Tab 6: CPE Array Issues | Empty/malformed CPE arrays + format validation | Tab Content: CPE validation showing “Position 2: Invalid CPE format - missing ‘cpe:’ prefix” | External Source | ❌ | 👤🗃️ |
→ Tab 7: Duplicate Entries | Duplicate row tracking and consolidation | Tab Content: Duplicate analysis showing “Identical platform appears at rows: [2, 5, 8]” | External Source | ℹ️ | 👤🗃️ |
→ Tab 8: Platform Data Issues | Misaligned vendor/product data patterns | Tab Content: Platform analysis showing “Unexpected Platforms data detected in affected entry” | External Source | ❌ | 👤🗃️ |
→ Tab 9: Missing Affected Products | No products marked as affected/unknown | Tab Content: Product analysis showing “No products marked as ‘affected’ - verify at least one should be affected” | External Source | ❌ | 👤🗃️ |
→ Tab 10: Overlapping Ranges | Version ranges overlap within same CPE Base String | Tab Content: Range analysis showing “IDENTICAL overlap: v1.0-v2.0 conflicts with v1.0-v2.0 (Row 5)” with consolidation suggestions | External Source | ❌ | 👤🗃️ |
Badge Name | Granular Check | Tooltip or Tab Content Example | Root Cause Owner | Dev Handled | Audiences |
---|---|---|---|---|---|
🟢 Confirmed Mappings: X | Verified CPE base string mappings available | Tooltip: “Confirmed CPE mappings available (3): cpe:2.3:a:mongodb:compass:::::::: Less specific mappings filtered out: cpe:2.3:a:mongodb:::::::::”* | Tool Development | ✅ | 👤🔧 |
🔴 git versionType | git versionType with version ranges (CRITICAL) | Tooltip: “CRITICAL: CPE Range Matching Logic does not currently support git versionTypes Detected in version range context” | Tool Development | ❌ | 👤🔧 |
🟡 git versionType | git versionType without version ranges | Tooltip: “Versioning based on the git versionType is not advised for CPE Names, consider non-git versioning.” | Tool Development | ❌ | 👤🔧 |
🔴 CVE Affects Product No Versions | No version information + not modal-only case | Tooltip: “No versions detected!” (or detailed version check information) | Tool Development | ℹ️ | 👤 |
🟡 Has Version Changes | Version changes/fixes processed | Tooltip: “Versions array contains change history information requiring special handling” | Tool Development | ✅ | 👤🔧 |
Badge Name | Granular Check | Tooltip or Tab Content Example | Audiences |
---|---|---|---|
📋 CPE Base String References (X) | CPE provenance reference data modal | Tooltip: “CPE Base String References: 57 references found from NVD CPE API Click for detailed reference information” | 👤 |
→ Dynamic Tabs by Reference Type | Reference data organized by type (Vendor, Product, Project, Version, etc.) | Tab Content: Each reference type gets its own tab showing URLs with frequency counts, compact display format, and external link functionality | 👤 |
Badge Name | Granular Check | Tooltip or Tab Content Example | Root Cause Owner | Dev Handled | Audiences |
---|---|---|---|---|---|
📈 Sorting Priority Context | Multi-tab CPE analysis modal | Tooltip: “Sorting Priority Context available - Statistics + Searches + Versions (4 item(s)). Click for detailed CPE analysis and matching insights.” | Tool Development | ℹ️ | 👤🔧 |
→ Tab 1: Confirmed Mapping | Verified CPE base string mapping by moderators | Tab Content: “✓ Confirmed Mapping - This CPE Base String has been verified as a Confirmed Mapping by CPE Moderators” | Tool Development | ✅ | 👤🔧 |
→ Tab 2: CPE Statistics | Statistical analysis of CPE name matches | Tab Content: “CPE Base String –> CPE Name Matches (X entries)” with detailed match statistics and filtering information | Tool Development | ℹ️ | 👤🔧 |
→ Tab 3: Relevant Searches | CPE base string search patterns and results | Tab Content: Search query analysis showing patterns like “vendor:product” with match counts and relevance scores | Tool Development | ℹ️ | 👤🔧 |
→ Tab 4: Version Processing | Version-specific CPE processing details | Tab Content: Version analysis showing processing rules, transformations, and match generation details | Tool Development | ℹ️ | 👤🔧 |
👤 For Tool Users:
🔧 For Tool Developers:
🗃️ For Source Data Providers:
is_modal_only_case()
function provides consistent logic across badge creationImplementation Approach:
generateTabsData()
functionData Structure:
{
"Vendor": {
"total_freq": 134,
"refs": [
{"url": "https://example.com/vendor-page", "count": 33},
{"url": "https://another-vendor-link.com", "count": 25}
]
},
"Product": {
"total_freq": 89,
"refs": [
{"url": "https://product-page.com", "count": 44}
]
}
}
Tab Generation Process:
generateReferenceTabContent()
creates compact URL displays with frequency badgesBootstrap Integration:
max-height: 250px
with overflow-y: auto
for scrollabilitytarget="_blank"
The badge system uses a two-tier detection approach implemented in the is_modal_only_case()
function:
Tier 1 - Modal-Only Detection:
Tier 2 - Complex Cases:
The vulnerable flag determination follows a consistent pattern across the system:
// Centralized vulnerability determination (mirrors Python logic)
window.determineVulnerability = function(status) {
return status === 'affected';
};
// Usage in CPE match generation
const isVulnerable = window.determineVulnerability(versionInfo.status);
Key Pattern: status === 'affected'
→ vulnerable: true
mapping ensures consistent vulnerability assessment across all processing components.
The system has been validated against production CVE data:
CVE-2024-20515 - Version Granularity Detection:
"Inconsistent version granularity: 3.3: 2-part (3.3 Patch 2, 3.3 Patch 1), 3-part (3.3.0)"
CVE-1337-99997 - Version Text Patterns:
Overlapping Ranges Detection:
"IDENTICAL overlap: v1.0-v2.0 conflicts with v1.0-v2.0"
for duplicate ranges within same CPE Base Stringpackaging.version.parse()
with field-based CPE grouping (vendor:product:platform:packagename:collectionurl)JavaScript Components:
badge_modal_system.js
: Client-side modal system with BadgeModalFactory and BadgeModalManager classesmodular_rules.js
: JSON generation rules processing with determineVulnerability functioncpe_json_handler.js
: CPE match generation and version processing logicPython Components:
badge_modal_system.py
: Modal detection logic with is_modal_only_case functiongenerateHTML.py
: HTML generation pipeline with badge creation orchestrationTemplate Integration:
This reference documents the complete badge/modal system implementation as currently deployed.