regscale-cli 6.16.3.0__py3-none-any.whl → 6.16.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of regscale-cli might be problematic. Click here for more details.
- regscale/__init__.py +1 -1
- regscale/core/app/internal/control_editor.py +26 -2
- regscale/core/app/internal/model_editor.py +39 -26
- regscale/integrations/commercial/grype/scanner.py +37 -29
- regscale/integrations/commercial/opentext/commands.py +2 -0
- regscale/integrations/commercial/opentext/scanner.py +45 -31
- regscale/integrations/commercial/qualys.py +3 -1
- regscale/integrations/commercial/sicura/commands.py +9 -14
- regscale/integrations/commercial/tenablev2/click.py +25 -13
- regscale/integrations/commercial/tenablev2/scanner.py +12 -3
- regscale/integrations/commercial/trivy/scanner.py +14 -6
- regscale/integrations/commercial/wizv2/click.py +15 -37
- regscale/integrations/jsonl_scanner_integration.py +120 -16
- regscale/integrations/public/fedramp/click.py +8 -8
- regscale/integrations/public/fedramp/fedramp_cis_crm.py +499 -106
- regscale/integrations/public/fedramp/ssp_logger.py +2 -9
- regscale/integrations/scanner_integration.py +14 -9
- regscale/models/integration_models/cisa_kev_data.json +39 -8
- regscale/models/integration_models/synqly_models/capabilities.json +1 -1
- regscale/models/integration_models/tenable_models/integration.py +23 -3
- regscale/models/regscale_models/control_implementation.py +18 -0
- regscale/models/regscale_models/control_objective.py +2 -1
- regscale/models/regscale_models/facility.py +10 -26
- regscale/models/regscale_models/functional_roles.py +38 -0
- regscale/models/regscale_models/issue.py +3 -1
- regscale/models/regscale_models/parameter.py +21 -3
- regscale/models/regscale_models/profile.py +22 -0
- regscale/models/regscale_models/profile_mapping.py +48 -3
- regscale/models/regscale_models/regscale_model.py +2 -0
- regscale/models/regscale_models/risk.py +38 -30
- regscale/models/regscale_models/security_plan.py +1 -0
- regscale/models/regscale_models/supply_chain.py +1 -1
- regscale/models/regscale_models/user.py +16 -2
- regscale/utils/threading/__init__.py +1 -0
- regscale/utils/threading/threadsafe_list.py +10 -0
- regscale/utils/threading/threadsafe_set.py +116 -0
- {regscale_cli-6.16.3.0.dist-info → regscale_cli-6.16.4.0.dist-info}/METADATA +1 -1
- {regscale_cli-6.16.3.0.dist-info → regscale_cli-6.16.4.0.dist-info}/RECORD +42 -40
- {regscale_cli-6.16.3.0.dist-info → regscale_cli-6.16.4.0.dist-info}/LICENSE +0 -0
- {regscale_cli-6.16.3.0.dist-info → regscale_cli-6.16.4.0.dist-info}/WHEEL +0 -0
- {regscale_cli-6.16.3.0.dist-info → regscale_cli-6.16.4.0.dist-info}/entry_points.txt +0 -0
- {regscale_cli-6.16.3.0.dist-info → regscale_cli-6.16.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
from regscale.integrations.public.fedramp.reporting import (
|
|
2
|
-
write_events,
|
|
3
|
-
log_error,
|
|
4
|
-
log_event,
|
|
5
|
-
)
|
|
6
|
-
|
|
7
1
|
import logging
|
|
2
|
+
|
|
8
3
|
from regscale.core.app.logz import create_logger
|
|
4
|
+
from regscale.integrations.public.fedramp.reporting import log_error, log_event, write_events
|
|
9
5
|
|
|
10
6
|
|
|
11
7
|
class CaptureEventsHandler(logging.Handler):
|
|
@@ -39,7 +35,6 @@ class SSPLogger:
|
|
|
39
35
|
return self.logger
|
|
40
36
|
|
|
41
37
|
def info(self, event_msg: str, record_type: str = "", model_layer: str = ""):
|
|
42
|
-
self.logger.info(event_msg)
|
|
43
38
|
info = {
|
|
44
39
|
"event_msg": event_msg,
|
|
45
40
|
"record_type": record_type,
|
|
@@ -57,7 +52,6 @@ class SSPLogger:
|
|
|
57
52
|
model_layer: str = "",
|
|
58
53
|
missing_element: str = "",
|
|
59
54
|
):
|
|
60
|
-
self.logger.error(event_msg)
|
|
61
55
|
error = {
|
|
62
56
|
"event_msg": event_msg,
|
|
63
57
|
"missing_element": missing_element,
|
|
@@ -67,7 +61,6 @@ class SSPLogger:
|
|
|
67
61
|
self.errors.append(log_error(**error, level="Error"))
|
|
68
62
|
|
|
69
63
|
def warning(self, event_msg: str, record_type: str = "", model_layer: str = ""):
|
|
70
|
-
self.logger.warning(event_msg)
|
|
71
64
|
warning = {
|
|
72
65
|
"event_msg": event_msg,
|
|
73
66
|
"record_type": record_type,
|
|
@@ -2105,7 +2105,7 @@ class ScannerIntegration(ABC):
|
|
|
2105
2105
|
parentId=self.plan_id,
|
|
2106
2106
|
parentModule=regscale_models.SecurityPlan.get_module_string(),
|
|
2107
2107
|
scanningTool=self.title,
|
|
2108
|
-
scanDate=get_current_datetime(),
|
|
2108
|
+
scanDate=self.scan_date if self.scan_date else get_current_datetime(),
|
|
2109
2109
|
createdById=self.assessor_id,
|
|
2110
2110
|
tenantsId=self.tenant_id,
|
|
2111
2111
|
vLow=0,
|
|
@@ -2190,16 +2190,12 @@ class ScannerIntegration(ABC):
|
|
|
2190
2190
|
if asset := self.get_asset_by_identifier(finding.asset_identifier):
|
|
2191
2191
|
if vulnerability_id := self.handle_vulnerability(finding, asset, scan_history):
|
|
2192
2192
|
current_vulnerabilities[asset.id].add(vulnerability_id)
|
|
2193
|
-
|
|
2194
|
-
# Handle failing finding (creates/updates issues) for both checklist and vulnerability cases
|
|
2195
|
-
if finding.status != regscale_models.IssueStatus.Closed:
|
|
2196
2193
|
self.handle_failing_finding(
|
|
2197
2194
|
issue_title=finding.issue_title or finding.title,
|
|
2198
2195
|
finding=finding,
|
|
2199
2196
|
)
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
self.set_severity_count_for_scan(finding.severity, scan_history)
|
|
2197
|
+
# Update scan history severity counts
|
|
2198
|
+
self.set_severity_count_for_scan(finding.severity, scan_history)
|
|
2203
2199
|
|
|
2204
2200
|
def create_vulnerability_from_finding(
|
|
2205
2201
|
self, finding: IntegrationFinding, asset: regscale_models.Asset, scan_history: regscale_models.ScanHistory
|
|
@@ -2581,7 +2577,7 @@ class ScannerIntegration(ABC):
|
|
|
2581
2577
|
:rtype: int
|
|
2582
2578
|
"""
|
|
2583
2579
|
logger.info("Syncing %s findings...", kwargs.get("title", cls.title))
|
|
2584
|
-
instance = cls(plan_id=plan_id)
|
|
2580
|
+
instance = cls(plan_id=plan_id, **kwargs)
|
|
2585
2581
|
instance.set_keys(**kwargs)
|
|
2586
2582
|
# If a progress object was passed, use it instead of creating a new one
|
|
2587
2583
|
instance.finding_progress = kwargs.pop("progress") if "progress" in kwargs else create_progress_object()
|
|
@@ -2605,9 +2601,17 @@ class ScannerIntegration(ABC):
|
|
|
2605
2601
|
logger.info("All findings have been processed successfully.")
|
|
2606
2602
|
|
|
2607
2603
|
if scan_history := instance._results.get("scan_history"):
|
|
2604
|
+
open_count = scan_history.vCritical + scan_history.vHigh + scan_history.vMedium + scan_history.vLow
|
|
2605
|
+
closed_count = findings_processed - open_count
|
|
2608
2606
|
logger.info(
|
|
2609
|
-
"Processed %d findings
|
|
2607
|
+
"Processed %d total findings. Open vulnerabilities: %d & Closed vulnerabilities: %d",
|
|
2610
2608
|
findings_processed,
|
|
2609
|
+
open_count,
|
|
2610
|
+
closed_count,
|
|
2611
|
+
)
|
|
2612
|
+
logger.info(
|
|
2613
|
+
"%d Open vulnerabilities: Critical(s): %d, High(s): %d, Medium(s): %d, Low(s): %d",
|
|
2614
|
+
open_count,
|
|
2611
2615
|
scan_history.vCritical,
|
|
2612
2616
|
scan_history.vHigh,
|
|
2613
2617
|
scan_history.vMedium,
|
|
@@ -2805,6 +2809,7 @@ class ScannerIntegration(ABC):
|
|
|
2805
2809
|
:return: None
|
|
2806
2810
|
:rtype: None
|
|
2807
2811
|
"""
|
|
2812
|
+
logger.info(f"Updating scan history with scan_date {self.scan_date}")
|
|
2808
2813
|
scan_history.scanDate = datetime_str(self.scan_date)
|
|
2809
2814
|
scan_history.save()
|
|
2810
2815
|
|
|
@@ -1,9 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"title": "CISA Catalog of Known Exploited Vulnerabilities",
|
|
3
|
-
"catalogVersion": "2025.03
|
|
4
|
-
"dateReleased": "2025-
|
|
5
|
-
"count":
|
|
3
|
+
"catalogVersion": "2025.04.03",
|
|
4
|
+
"dateReleased": "2025-04-03T12:34:57.2906Z",
|
|
5
|
+
"count": 1313,
|
|
6
6
|
"vulnerabilities": [
|
|
7
|
+
{
|
|
8
|
+
"cveID": "CVE-2025-24813",
|
|
9
|
+
"vendorProject": "Apache",
|
|
10
|
+
"product": "Tomcat",
|
|
11
|
+
"vulnerabilityName": "Apache Tomcat Path Equivalence Vulnerability",
|
|
12
|
+
"dateAdded": "2025-04-01",
|
|
13
|
+
"shortDescription": "Apache Tomcat contains a path equivalence vulnerability that allows a remote attacker to execute code, disclose information, or inject malicious content via a partial PUT request.",
|
|
14
|
+
"requiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
15
|
+
"dueDate": "2025-04-22",
|
|
16
|
+
"knownRansomwareCampaignUse": "Unknown",
|
|
17
|
+
"notes": "https:\/\/lists.apache.org\/thread\/j5fkjv2k477os90nczf2v9l61fb0kkgq ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-24813",
|
|
18
|
+
"cwes": [
|
|
19
|
+
"CWE-44",
|
|
20
|
+
"CWE-502"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"cveID": "CVE-2024-20439",
|
|
25
|
+
"vendorProject": "Cisco",
|
|
26
|
+
"product": "Smart Licensing Utility",
|
|
27
|
+
"vulnerabilityName": "Cisco Smart Licensing Utility Static Credential Vulnerability",
|
|
28
|
+
"dateAdded": "2025-03-31",
|
|
29
|
+
"shortDescription": "Cisco Smart Licensing Utility contains a static credential vulnerability that allows an unauthenticated, remote attacker to log in to an affected system and gain administrative credentials.",
|
|
30
|
+
"requiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
31
|
+
"dueDate": "2025-04-21",
|
|
32
|
+
"knownRansomwareCampaignUse": "Unknown",
|
|
33
|
+
"notes": "https:\/\/sec.cloudapps.cisco.com\/security\/center\/content\/CiscoSecurityAdvisory\/cisco-sa-cslu-7gHMzWmw ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2024-20439",
|
|
34
|
+
"cwes": [
|
|
35
|
+
"CWE-912"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
7
38
|
{
|
|
8
39
|
"cveID": "CVE-2025-2783",
|
|
9
40
|
"vendorProject": "Google",
|
|
@@ -54,7 +85,7 @@
|
|
|
54
85
|
"vulnerabilityName": "reviewdog\/action-setup GitHub Action Embedded Malicious Code Vulnerability",
|
|
55
86
|
"dateAdded": "2025-03-24",
|
|
56
87
|
"shortDescription": "reviewdog action-setup GitHub Action contains an embedded malicious code vulnerability that dumps exposed secrets to Github Actions Workflow Logs.",
|
|
57
|
-
"requiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
88
|
+
"requiredAction": "Apply mitigations as set forth in the CISA instructions linked below. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
58
89
|
"dueDate": "2025-04-14",
|
|
59
90
|
"knownRansomwareCampaignUse": "Unknown",
|
|
60
91
|
"notes": "This vulnerability affects a common open-source project, third-party library, or a protocol used by different products. For more information, please see: CISA Mitigation Instructions: https:\/\/www.cisa.gov\/news-events\/alerts\/2025\/03\/18\/supply-chain-compromise-third-party-tj-actionschanged-files-cve-2025-30066-and-reviewdogaction ; Additional References: https:\/\/github.com\/reviewdog\/reviewdog\/security\/advisories\/GHSA-qmg3-hpqr-gqvc ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-30154",
|
|
@@ -114,7 +145,7 @@
|
|
|
114
145
|
"vulnerabilityName": "tj-actions\/changed-files GitHub Action Embedded Malicious Code Vulnerability",
|
|
115
146
|
"dateAdded": "2025-03-18",
|
|
116
147
|
"shortDescription": "tj-actions\/changed-files GitHub Action contains an embedded malicious code vulnerability that allows a remote attacker to discover secrets by reading Github Actions Workflow Logs. These secrets may include, but are not limited to, valid AWS access keys, GitHub personal access tokens (PATs), npm tokens, and private RSA keys.",
|
|
117
|
-
"requiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
148
|
+
"requiredAction": "Apply mitigations as set forth in the CISA instructions linked below. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
118
149
|
"dueDate": "2025-04-08",
|
|
119
150
|
"knownRansomwareCampaignUse": "Unknown",
|
|
120
151
|
"notes": "This vulnerability affects a common open-source project, third-party library, or a protocol used by different products. For more information, please see: CISA Mitigation Instructions: https:\/\/www.cisa.gov\/news-events\/alerts\/2025\/03\/18\/supply-chain-compromise-third-party-tj-actionschanged-files-cve-2025-30066-and-reviewdogaction ; Additional References: https:\/\/github.com\/tj-actions\/changed-files\/blob\/45fb12d7a8bedb4da42342e52fe054c6c2c3fd73\/README.md?plain=1#L20-L28 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-30066",
|
|
@@ -252,7 +283,7 @@
|
|
|
252
283
|
"shortDescription": "Microsoft Windows Management Console (MMC) contains an improper neutralization vulnerability that allows an unauthorized attacker to bypass a security feature locally.",
|
|
253
284
|
"requiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.",
|
|
254
285
|
"dueDate": "2025-04-01",
|
|
255
|
-
"knownRansomwareCampaignUse": "
|
|
286
|
+
"knownRansomwareCampaignUse": "Known",
|
|
256
287
|
"notes": "https:\/\/msrc.microsoft.com\/update-guide\/en-US\/vulnerability\/CVE-2025-26633 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-26633",
|
|
257
288
|
"cwes": [
|
|
258
289
|
"CWE-707"
|
|
@@ -7732,7 +7763,7 @@
|
|
|
7732
7763
|
"shortDescription": "Synacor Zimbra Collaboration Suite (ZCS) contains flaw in the mboximport functionality, allowing an authenticated attacker to upload arbitrary files to perform remote code execution. This vulnerability was chained with CVE-2022-37042 which allows for unauthenticated remote code execution.",
|
|
7733
7764
|
"requiredAction": "Apply updates per vendor instructions.",
|
|
7734
7765
|
"dueDate": "2022-09-01",
|
|
7735
|
-
"knownRansomwareCampaignUse": "
|
|
7766
|
+
"knownRansomwareCampaignUse": "Known",
|
|
7736
7767
|
"notes": "https:\/\/blog.zimbra.com\/2022\/08\/authentication-bypass-in-mailboximportservlet-vulnerability\/; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2022-27925",
|
|
7737
7768
|
"cwes": [
|
|
7738
7769
|
"CWE-22"
|
|
@@ -7747,7 +7778,7 @@
|
|
|
7747
7778
|
"shortDescription": "Synacor Zimbra Collaboration Suite (ZCS) contains an authentication bypass vulnerability in MailboxImportServlet. This vulnerability was chained with CVE-2022-27925 which allows for unauthenticated remote code execution.",
|
|
7748
7779
|
"requiredAction": "Apply updates per vendor instructions.",
|
|
7749
7780
|
"dueDate": "2022-09-01",
|
|
7750
|
-
"knownRansomwareCampaignUse": "
|
|
7781
|
+
"knownRansomwareCampaignUse": "Known",
|
|
7751
7782
|
"notes": "https:\/\/blog.zimbra.com\/2022\/08\/authentication-bypass-in-mailboximportservlet-vulnerability\/; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2022-37042",
|
|
7752
7783
|
"cwes": [
|
|
7753
7784
|
"CWE-23"
|