regscale-cli 6.20.5.0__py3-none-any.whl → 6.20.7.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.

Files changed (37) hide show
  1. regscale/__init__.py +1 -1
  2. regscale/_version.py +39 -0
  3. regscale/core/app/internal/__init__.py +13 -0
  4. regscale/core/app/internal/set_permissions.py +173 -0
  5. regscale/core/app/utils/file_utils.py +11 -1
  6. regscale/core/app/utils/regscale_utils.py +1 -133
  7. regscale/core/utils/date.py +62 -29
  8. regscale/integrations/commercial/qualys/__init__.py +7 -7
  9. regscale/integrations/commercial/wizv2/click.py +9 -5
  10. regscale/integrations/commercial/wizv2/constants.py +15 -0
  11. regscale/integrations/commercial/wizv2/parsers.py +23 -0
  12. regscale/integrations/commercial/wizv2/scanner.py +84 -29
  13. regscale/integrations/commercial/wizv2/utils.py +91 -4
  14. regscale/integrations/commercial/wizv2/variables.py +2 -1
  15. regscale/integrations/commercial/wizv2/wiz_auth.py +3 -3
  16. regscale/integrations/public/fedramp/fedramp_docx.py +2 -3
  17. regscale/integrations/scanner_integration.py +7 -2
  18. regscale/models/app_models/import_validater.py +5 -1
  19. regscale/models/app_models/mapping.py +3 -1
  20. regscale/models/integration_models/cisa_kev_data.json +140 -5
  21. regscale/models/integration_models/flat_file_importer/__init__.py +2 -3
  22. regscale/models/integration_models/qualys.py +24 -4
  23. regscale/models/integration_models/synqly_models/capabilities.json +1 -1
  24. regscale/models/regscale_models/__init__.py +2 -0
  25. regscale/models/regscale_models/asset.py +1 -1
  26. regscale/models/regscale_models/modules.py +88 -1
  27. regscale/models/regscale_models/regscale_model.py +7 -1
  28. regscale/models/regscale_models/vulnerability.py +3 -3
  29. regscale/models/regscale_models/vulnerability_mapping.py +2 -2
  30. regscale/regscale.py +2 -0
  31. {regscale_cli-6.20.5.0.dist-info → regscale_cli-6.20.7.0.dist-info}/METADATA +1 -1
  32. {regscale_cli-6.20.5.0.dist-info → regscale_cli-6.20.7.0.dist-info}/RECORD +37 -34
  33. tests/regscale/test_init.py +94 -0
  34. {regscale_cli-6.20.5.0.dist-info → regscale_cli-6.20.7.0.dist-info}/LICENSE +0 -0
  35. {regscale_cli-6.20.5.0.dist-info → regscale_cli-6.20.7.0.dist-info}/WHEEL +0 -0
  36. {regscale_cli-6.20.5.0.dist-info → regscale_cli-6.20.7.0.dist-info}/entry_points.txt +0 -0
  37. {regscale_cli-6.20.5.0.dist-info → regscale_cli-6.20.7.0.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,144 @@
1
1
  {
2
2
  "title": "CISA Catalog of Known Exploited Vulnerabilities",
3
- "catalogVersion": "2025.07.10",
4
- "dateReleased": "2025-07-10T16:05:09.522Z",
5
- "count": 1379,
3
+ "catalogVersion": "2025.07.22",
4
+ "dateReleased": "2025-07-22T17:01:26.7198Z",
5
+ "count": 1388,
6
6
  "vulnerabilities": [
7
+ {
8
+ "cveID": "CVE-2025-2775",
9
+ "vendorProject": "SysAid",
10
+ "product": "SysAid On-Prem",
11
+ "vulnerabilityName": "SysAid On-Prem Improper Restriction of XML External Entity Reference Vulnerability",
12
+ "dateAdded": "2025-07-22",
13
+ "shortDescription": "SysAid On-Prem contains an improper restriction of XML external entity reference vulnerability in the Checkin processing functionality, allowing for administrator account takeover and file read primitives.",
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-08-12",
16
+ "knownRansomwareCampaignUse": "Unknown",
17
+ "notes": "https:\/\/documentation.sysaid.com\/docs\/24-40-60 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-2775",
18
+ "cwes": [
19
+ "CWE-611"
20
+ ]
21
+ },
22
+ {
23
+ "cveID": "CVE-2025-2776",
24
+ "vendorProject": "SysAid",
25
+ "product": "SysAid On-Prem",
26
+ "vulnerabilityName": "SysAid On-Prem Improper Restriction of XML External Entity Reference Vulnerability",
27
+ "dateAdded": "2025-07-22",
28
+ "shortDescription": "SysAid On-Prem contains an improper restriction of XML external entity reference vulnerability in the Server URL processing functionality, allowing for administrator account takeover and file read primitives.",
29
+ "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.",
30
+ "dueDate": "2025-08-12",
31
+ "knownRansomwareCampaignUse": "Unknown",
32
+ "notes": "https:\/\/documentation.sysaid.com\/docs\/24-40-60 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-2776",
33
+ "cwes": [
34
+ "CWE-611"
35
+ ]
36
+ },
37
+ {
38
+ "cveID": "CVE-2025-6558",
39
+ "vendorProject": "Google",
40
+ "product": "Chromium",
41
+ "vulnerabilityName": "Google Chromium ANGLE and GPU Improper Input Validation Vulnerability",
42
+ "dateAdded": "2025-07-22",
43
+ "shortDescription": "Google Chromium contains an improper input validation vulnerability in ANGLE and GPU. This vulnerability could allow a remote attacker to potentially perform a sandbox escape via a crafted HTML page. This vulnerability could affect multiple web browsers that utilize Chromium, including, but not limited to, Google Chrome, Microsoft Edge, and Opera.",
44
+ "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.",
45
+ "dueDate": "2025-08-12",
46
+ "knownRansomwareCampaignUse": "Unknown",
47
+ "notes": "https:\/\/chromereleases.googleblog.com\/2025\/07\/stable-channel-update-for-desktop_15.html ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-6558",
48
+ "cwes": [
49
+ "CWE-20"
50
+ ]
51
+ },
52
+ {
53
+ "cveID": "CVE-2025-54309",
54
+ "vendorProject": "CrushFTP",
55
+ "product": "CrushFTP",
56
+ "vulnerabilityName": " CrushFTP Unprotected Alternate Channel Vulnerability",
57
+ "dateAdded": "2025-07-22",
58
+ "shortDescription": "CrushFTP contains an unprotected alternate channel vulnerability. When the DMZ proxy feature is not used, mishandles AS2 validation and consequently allows remote attackers to obtain admin access via HTTPS.",
59
+ "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.",
60
+ "dueDate": "2025-08-12",
61
+ "knownRansomwareCampaignUse": "Unknown",
62
+ "notes": "https:\/\/www.crushftp.com\/crush11wiki\/Wiki.jsp?page=CompromiseJuly2025 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-54309 ",
63
+ "cwes": [
64
+ "CWE-420"
65
+ ]
66
+ },
67
+ {
68
+ "cveID": "CVE-2025-49704",
69
+ "vendorProject": "Microsoft",
70
+ "product": "SharePoint",
71
+ "vulnerabilityName": "Microsoft SharePoint Code Injection Vulnerability",
72
+ "dateAdded": "2025-07-22",
73
+ "shortDescription": "Microsoft SharePoint contains a code injection vulnerability that could allow an authorized attacker to execute code over a network. This vulnerability could be chained with CVE-2025-49706. The update for CVE-2025-53770 includes more robust protections than the update for CVE-2025-49704.",
74
+ "requiredAction": "CISA recommends disconnecting public-facing versions of SharePoint Server that have reached their end-of-life (EOL) or end-of-service (EOS). For example, SharePoint Server 2013 and earlier versions are end-of-life and should be discontinued if still in use. For supported versions, please follow the mitigations according to CISA and vendor instructions. Adhere to the applicable BOD 22-01 guidance for cloud services or discontinue use of the product if mitigations are not available.",
75
+ "dueDate": "2025-07-23",
76
+ "knownRansomwareCampaignUse": "Unknown",
77
+ "notes": "CISA Mitigation Instructions: https:\/\/www.cisa.gov\/news-events\/alerts\/2025\/07\/20\/microsoft-releases-guidance-exploitation-sharepoint-vulnerability-cve-2025-53770; https:\/\/www.microsoft.com\/en-us\/security\/blog\/2025\/07\/22\/disrupting-active-exploitation-of-on-premises-sharepoint-vulnerabilities\/ ; https:\/\/msrc.microsoft.com\/update-guide\/vulnerability\/CVE-2025-49704 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-49704",
78
+ "cwes": [
79
+ "CWE-94"
80
+ ]
81
+ },
82
+ {
83
+ "cveID": "CVE-2025-49706",
84
+ "vendorProject": "Microsoft",
85
+ "product": "SharePoint",
86
+ "vulnerabilityName": "Microsoft SharePoint Improper Authentication Vulnerability",
87
+ "dateAdded": "2025-07-22",
88
+ "shortDescription": "Microsoft SharePoint contains an improper authentication vulnerability that allows an authorized attacker to perform spoofing over a network. Successfully exploitation could allow an attacker to view sensitive information and make some changes to disclosed information. This vulnerability could be chained with CVE-2025-49704. The update for CVE-2025-53771 includes more robust protections than the update for CVE-2025-49706.",
89
+ "requiredAction": "CISA recommends disconnecting public-facing versions of SharePoint Server that have reached their end-of-life (EOL) or end-of-service (EOS). For example, SharePoint Server 2013 and earlier versions are end-of-life and should be discontinued if still in use. For supported versions, please follow the mitigations according to CISA and vendor instructions. Adhere to the applicable BOD 22-01 guidance for cloud services or discontinue use of the product if mitigations are not available.",
90
+ "dueDate": "2025-07-23",
91
+ "knownRansomwareCampaignUse": "Unknown",
92
+ "notes": "CISA Mitigation Instructions: https:\/\/www.cisa.gov\/news-events\/alerts\/2025\/07\/20\/microsoft-releases-guidance-exploitation-sharepoint-vulnerability-cve-2025-53770; https:\/\/www.microsoft.com\/en-us\/security\/blog\/2025\/07\/22\/disrupting-active-exploitation-of-on-premises-sharepoint-vulnerabilities\/ ; https:\/\/msrc.microsoft.com\/update-guide\/vulnerability\/CVE-2025-49706 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-49706",
93
+ "cwes": [
94
+ "CWE-287"
95
+ ]
96
+ },
97
+ {
98
+ "cveID": "CVE-2025-53770",
99
+ "vendorProject": "Microsoft",
100
+ "product": "SharePoint",
101
+ "vulnerabilityName": "Microsoft SharePoint Deserialization of Untrusted Data Vulnerability",
102
+ "dateAdded": "2025-07-20",
103
+ "shortDescription": "Microsoft SharePoint Server on-premises contains a deserialization of untrusted data vulnerability that could allow an unauthorized attacker to execute code over a network.",
104
+ "requiredAction": "CISA recommends configuring AMSI integration in SharePoint and deploying Defender AV on all SharePoint servers. If AMSI cannot be enabled, CISA recommends disconnecting affected products that are public-facing on the internet from service until official mitigations are available. Once mitigations are provided, apply them according to CISA and vendor instructions. Follow the applicable BOD 22-01 guidance for cloud services or discontinue use of the product if mitigations are not available. ",
105
+ "dueDate": "2025-07-21",
106
+ "knownRansomwareCampaignUse": "Unknown",
107
+ "notes": "CISA Mitigation Instructions: https:\/\/www.cisa.gov\/news-events\/alerts\/2025\/07\/20\/microsoft-releases-guidance-exploitation-sharepoint-vulnerability-cve-2025-53770; https:\/\/www.microsoft.com\/en-us\/security\/blog\/2025\/07\/22\/disrupting-active-exploitation-of-on-premises-sharepoint-vulnerabilities\/ ; https:\/\/msrc.microsoft.com\/update-guide\/vulnerability\/CVE-2025-53770 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-53770",
108
+ "cwes": [
109
+ "CWE-502"
110
+ ]
111
+ },
112
+ {
113
+ "cveID": "CVE-2025-25257",
114
+ "vendorProject": "Fortinet",
115
+ "product": "FortiWeb",
116
+ "vulnerabilityName": "Fortinet FortiWeb SQL Injection Vulnerability",
117
+ "dateAdded": "2025-07-18",
118
+ "shortDescription": "Fortinet FortiWeb contains a SQL injection vulnerability that may allow an unauthenticated attacker to execute unauthorized SQL code or commands via crafted HTTP or HTTPs requests.",
119
+ "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.",
120
+ "dueDate": "2025-08-08",
121
+ "knownRansomwareCampaignUse": "Unknown",
122
+ "notes": "https:\/\/fortiguard.fortinet.com\/psirt\/FG-IR-25-151 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-25257",
123
+ "cwes": [
124
+ "CWE-89"
125
+ ]
126
+ },
127
+ {
128
+ "cveID": "CVE-2025-47812",
129
+ "vendorProject": "Wing FTP Server",
130
+ "product": "Wing FTP Server",
131
+ "vulnerabilityName": "Wing FTP Server Improper Neutralization of Null Byte or NUL Character Vulnerability",
132
+ "dateAdded": "2025-07-14",
133
+ "shortDescription": "Wing FTP Server contains an improper neutralization of null byte or NUL character vulnerability that can allow injection of arbitrary Lua code into user session files. This can be used to execute arbitrary system commands with the privileges of the FTP service (root or SYSTEM by default).",
134
+ "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.",
135
+ "dueDate": "2025-08-04",
136
+ "knownRansomwareCampaignUse": "Unknown",
137
+ "notes": "https:\/\/www.wftpserver.com\/serverhistory.htm ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-47812",
138
+ "cwes": [
139
+ "CWE-158"
140
+ ]
141
+ },
7
142
  {
8
143
  "cveID": "CVE-2025-5777",
9
144
  "vendorProject": "Citrix",
@@ -150,7 +285,7 @@
150
285
  "shortDescription": "Fortinet FortiOS contains a use of hard-coded credentials vulnerability that could allow an attacker to cipher sensitive data in FortiOS configuration backup file via knowledge of the hard-coded key. ",
151
286
  "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.",
152
287
  "dueDate": "2025-07-16",
153
- "knownRansomwareCampaignUse": "Unknown",
288
+ "knownRansomwareCampaignUse": "Known",
154
289
  "notes": "https:\/\/fortiguard.com\/advisory\/FG-IR-19-007 ; https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2019-6693",
155
290
  "cwes": [
156
291
  "CWE-798"
@@ -18491,7 +18626,7 @@
18491
18626
  "shortDescription": "Microsoft Remote Desktop Services, formerly known as Terminal Service, contains an unspecified vulnerability that allows an unauthenticated attacker to connect to the target system using RDP and send specially crafted requests. Successful exploitation allows for remote code execution. The vulnerability is also known under the moniker of BlueKeep.",
18492
18627
  "requiredAction": "Apply updates per vendor instructions.",
18493
18628
  "dueDate": "2022-05-03",
18494
- "knownRansomwareCampaignUse": "Unknown",
18629
+ "knownRansomwareCampaignUse": "Known",
18495
18630
  "notes": "https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2019-0708",
18496
18631
  "cwes": [
18497
18632
  "CWE-416"
@@ -391,11 +391,10 @@ class FlatFileImporter(ABC):
391
391
  # Skip lines until the start line is reached
392
392
  for _ in range(start_line_number):
393
393
  next(file)
394
- if file.name.endswith(".csv"):
394
+ if file.name.endswith((".csv", ".xlsx")):
395
+ # Use the validater data for CSV and XLSX files to ensure proper mapping validation
395
396
  data = self.validater.data.to_dict("records")
396
397
  header = list(self.validater.parsed_headers)
397
- elif file.name.endswith(".xlsx"):
398
- data, header = self.convert_xlsx_to_dict(file, start_line_number)
399
398
  elif file.name.endswith(".json"):
400
399
  try:
401
400
  # Filter possible null values
@@ -7,10 +7,12 @@ import logging
7
7
 
8
8
  # pylint: disable=C0415
9
9
  import re
10
+ from calendar import firstweekday
10
11
  from datetime import datetime
11
12
  from typing import Any, Iterator, Optional, TypeVar, TextIO, Union
12
13
 
13
14
  from openpyxl.reader.excel import load_workbook
15
+ from pandas import Timestamp
14
16
 
15
17
  from regscale.core.app import create_logger
16
18
  from regscale.core.app.application import Application
@@ -124,12 +126,27 @@ class Qualys(FlatFileImporter):
124
126
  }
125
127
  )
126
128
 
127
- def create_vuln(self, dat: Optional[dict] = None, **kwargs) -> None:
129
+ def _convert_datetime_to_str(self, input_date: Union[Timestamp, datetime]) -> str:
130
+ """
131
+ Convert a datetime or Timestamp object to a string in the specified format.
132
+
133
+ :param Union[Timestamp, datetime] input_date: The date to convert.
134
+ :return: The date as a string in the format '%Y-%m-%d %H:%M:%S'.
135
+ :rtype: str
136
+ """
137
+ if isinstance(input_date, Timestamp):
138
+ input_date = input_date.to_pydatetime()
139
+ elif isinstance(input_date, str):
140
+ return input_date
141
+ return input_date.strftime(self.dt_format)
142
+
143
+ def create_vuln(self, dat: Optional[dict] = None, **kwargs) -> Optional[Vulnerability]:
128
144
  """
129
145
  Create a vuln from a row in the Qualys file
130
146
 
131
147
  :param Optional[dict] dat: Data row from CSV file, defaults to None
132
- :rtype: None
148
+ :return: RegScale Vulnerability object or None
149
+ :rtype: Optional[Vulnerability]
133
150
  """
134
151
  from regscale.integrations.commercial.qualys import map_qualys_severity_to_regscale
135
152
 
@@ -145,6 +162,9 @@ class Qualys(FlatFileImporter):
145
162
  config = self.attributes.app.config
146
163
  asset_match = [asset for asset in self.data["assets"] if asset.name == dns]
147
164
  asset = asset_match[0] if asset_match else None
165
+ last_seen = self._convert_datetime_to_str(self.mapping.get_value(dat, "Last Detected"))
166
+ first_seen = self._convert_datetime_to_str(self.mapping.get_value(dat, "First Detected"))
167
+
148
168
  if dat and asset_match:
149
169
  regscale_vuln = Vulnerability(
150
170
  id=0,
@@ -152,8 +172,8 @@ class Qualys(FlatFileImporter):
152
172
  parentId=asset.id,
153
173
  parentModule="assets",
154
174
  ipAddress=self.mapping.get_value(dat, IP),
155
- lastSeen=self.mapping.get_value(dat, "Last Detected"),
156
- firstSeen=self.mapping.get_value(dat, "First Detected"),
175
+ lastSeen=last_seen,
176
+ firstSeen=first_seen,
157
177
  daysOpen=None,
158
178
  dns=self.mapping.get_value(dat, DNS, other_id),
159
179
  mitigated=None,