[6.54.0] - 2026-10-19
Added
- The JSON run summary from
--output jsonnow reports the run duration and the CLI peak memory use - Optional scannerPrefetch setting that fetches vendor findings and assets in the background while earlier ones are processed, speeding up scans against slow vendor APIs
- ServiceNow incidents can now carry selected RegScale issue properties, mapped to ServiceNow fields with the new snowIssuePropertyFields setting
- STIG checklist import now reads CKLB files from STIG Viewer 3 as well as CKL files
- JCAM POA&M import with the recommended mapping profile now records each milestone's JCAM status on the RegScale milestone's Status field
- Wiz vulnerability imports now send CISA KEV status, EPSS probability and internet exposure to RegScale for FedRAMP vulnerability ratings, and newly created assets with no Wiz exposure data are no longer marked as not public facing
- Tenable and Nessus imports now pass exploit availability and asset roles from scan data, and Nessus file imports also pass CISA KEV status and CVSS v3 vectors, for FedRAMP vulnerability evaluation
- Nexpose CSV import now supplies exploit availability and CVSS v3 vector data for FedRAMP VDR evaluation when the export includes those columns
- JFrog Xray import now records container image artifacts as container assets
- Axonius v2 pulls now log progress while reading devices and vulnerabilities, with a closing line giving the count and elapsed time
- DevSecOps
change opencan give the Change its parent record's security with--inherit-parent-security, or make it public with--public, and reports the result in its JSON output - New
wizReportWaitTimeoutsetting (default 3600 seconds) caps how long Wizcompliance_reportwaits for Wiz to build the compliance report
Changed
- Paginated RegScale GraphQL queries reuse connections across pages instead of opening a new TLS connection for every page
- The CLI now waits as long as the RegScale platform asks when it is rate-limited or temporarily unavailable, instead of giving up after a few quick retries
- The CLI no longer runs external commands through a system shell, and the Flask API debug mode now listens on the local machine only
- Large asset syncs send assets to RegScale in chunks of 5,000 as they are processed, roughly halving peak memory instead of holding the whole inventory until the end
- Reading large sets of issues and mappings from RegScale is faster and no longer stops at 500,000 records, by paging through them in record-ID order
- Faster CISA KEV due-date and KEV flag lookups during scanner imports, and lower memory use on long syncs that process many records
- Scanner integrations use about 70% less memory per finding and asset and build them more than twice as fast, so very large imports fit in less RAM
- Faster processing of large batch create and update responses from RegScale
- Faster CLI startup:
regscale --helpandregscale --versionrespond about five times sooner because heavy libraries now load only when a command needs them, and configuration loads faster by parsing init.yaml with the native YAML parser and reusing the parsed file while it is unchanged - Customer-supplied XML files (Nessus scans, CCI lists, FedRAMP documents, file uploads and data transformer inputs) are now parsed with a hardened parser that refuses external entities and entity expansion, and Nessus files parse about twice as fast
- STIG checklist (.ckl and .cklb, including s3:// paths) findings are now imported through the platform's checklist import endpoint on RegScale 6.31 or later, which creates the issues for failed checks; older platforms keep the previous client-side .ckl import
- Burp import now records scanned targets as web applications and no longer marks newly created targets as not internet-facing, so FedRAMP VDR reachability is evaluated by the platform
- The
jcam export_poams --previewhelp now explains that a plan whose issues could not be read completely is shown as skipped - Axonius v2 sync commands now reject --tags and --aql-filter with --mode saved-query instead of silently ignoring them
- The FIPS container image ships pre-compiled Python bytecode, so a fresh container starts commands up to two and a half times faster
- Tanium
sync_allnow stops at the first step whose Tanium fetch fails, while an on-prem server without Tanium Comply still syncs with a warning - Tanium
sync_assets,sync_findings,sync_complianceandsync_allnow exit 6 when fetching from Tanium fails (4 when Tanium refuses the token) instead of reporting success - CrowdStrike and Jira commands no longer hang on a vendor that stops answering: they fail with exit code 6 after a read timeout set by the new crowdstrikeTimeout and jiraTimeout settings (300 seconds by default)
- Azure AD sync, Intune and the Splunk Entra ID proxy login no longer hang when Microsoft Entra ID stops answering a token request: they fail with exit code 6 after a read timeout set by the new entraTokenTimeout setting (300 seconds by default), and an Azure AD sync authentication failure now exits with code 4 instead of 3
- Tenable.io
iocommands, AWSsync_assetsandsync_ssm, and Defendercollect_entra_evidencenow exit 6 when the vendor does not answer or fails (4 when it refuses the credentials) instead of exiting 0 as if the run had succeeded; scripts that read the exit code will now see these failures - Wiz
compliance_reportnow exits 6 (4 when Wiz refuses the credentials) instead of 0 when the compliance report cannot be created, fails, or does not finish in time, and exits 1 when Wiz returns no report; scripts that read the exit code will now see these failures, and no assessments are written for a report that never arrived - Commands that read RegScale data now fail with a non-zero exit and a message naming the module when the account lacks Read permission on it, or when the server rejects the query, instead of syncing nothing or a partial set
Fixed
- Synqly connector parameter types are now resolved from a fixed list instead of being evaluated, and Prisma SBOM archives skip special files and strip unsafe permission bits on every supported Python version
- Fixed a crash on macOS when a command used the built-in cache together with BigQuery or other Arrow-based data loading
- GCP Security Command Center sync no longer omits passed control assessments for controls that failed in an earlier run within the same process
- Salesforce case and attachment queries now escape their filter values, and BigQuery table names and row limits from configuration are validated before they are placed in a query
- A Microsoft Sentinel sync that fails while writing to RegScale no longer causes the next incremental sync to skip the incidents and alerts it did not write, and entity evidence is filed only after a successful write
- Custom form field saves rejected by the network edge are now retried, the Wiz sync names the assets whose form fields were not saved, and HTTP error pages are logged as one short line instead of the full page
- Wiz sign-in messages and help text name Wiz instead of the commercial Wiz.io service, which misled Wiz for Government users
- Wiz syncs no longer reuse an empty cached result, and a run against a different Wiz server no longer reads another server's cached data
- Wiz STIG check sync now imports only hosts in the selected Wiz project, and keeps a separate cached result per project
- Wiz issue sync no longer marks a rule False Positive or Risk Accepted while Wiz still has open issues for it
- FedRAMP DRF import no longer logs a misleading schema-drift warning when it adds a DR Number property
- JCAM mappings that send text to a Facilities field are now reported by check_config and dry_run, and stop imports, instead of writing a value that matches no facility
- JCAM artifact imports summarize missing tags and explain how to create them before importing
- Missing or invalid dates no longer default to the current date
- Listing risks returned none against current RegScale versions because the risk model still requested eight fields the platform removed
- DevSecOps runs in a GitHub merge queue now use the pr stage and the queue's base and head commits, and the DevSecOps GitHub Actions install the CLI into a per-run virtual environment, keep bundle artifacts for a configurable 30 days by default and deprecate cli-version latest
- JCAM mappings that send text to a Users or Organizations field are now reported by check_config and dry_run, and stop imports, instead of writing a value that matches no user or organization
- JCAM mappings that send text to a Compliance Setting, Related Policy, Risk Model, Profile, Threat Model or Program field are now reported by check_config and dry_run, and stop imports, instead of writing a value that matches no record
- CrowdStrike incident sync now records the device serial number on the assets it creates
- SentinelOne commands that run without an API token now fail with a message that names the missing sentineloneToken secret, instead of an illegal request header error
- Workflow instance filtering in the Python models calls the API route the platform serves
- Prisma Cloud CSV-mode host sync now creates an asset for every host and attaches its findings to it, instead of creating no host assets
- Prisma Cloud syncs that upload findings in more than one chunk no longer close the earlier chunks' vulnerabilities at the end of the run
rebuild_resolved_guidancenow rebuilds exactly the resolved guidance the platform stores: it accepts the PascalCaseguidanceStackkeys the platform writes, labels every layer with its source name (a Baseline profile layer shows the profile name, not "Base Guidance"), skips layers with blank guidance, and appends the[Local Override]: <justification>line when given the implementation's local tailoring flag and justification- AWS, Tenable.io and Wiz compliance report downloads no longer spend 12 to 20 minutes retrying a vendor that stopped answering: each now gives up after one read timeout, set by the new awsTimeout and tenableIoTimeout settings or the existing wizTimeout setting
- Jira task sync now logs each task that fails to create, update or close, and no longer counts it in the sync summary
- Nessus import now counts the remediation due date of STIG and compliance findings from the scan date instead of the import date
- Published Docker images are now built from the released commit, so they report the release's own version
- FedRAMP DRF import now saves decimal Adjusted CVSS Scores such as 6.1 to the deviation's Adjusted CVSS Score instead of dropping them or writing them to the Environmental Score
- FedRAMP DRF import now clears the CVSS Base Score for an empty or invalid cell instead of writing 0, keeps the stored score for the export's placeholder text, and keeps deviation fields the workbook has no column for (such as the Temporal Score) on re-import; the DevSecOps SAR publish now reads padded or signed compliance scores instead of sending 0
- FedRAMP DRF import no longer stops when a stored deviation has no DR number, and a re-import keeps a deviation field whose column the workbook does not have instead of clearing it
- FedRAMP DRF re-import updates a POA&M's only stored deviation that has no DR number, and stamps the row's DR number on it, instead of creating a second deviation on the issue
- FedRAMP DRF import no longer moves a deviation to another POA&M when its DR number belongs to a different issue, no longer adds blank or duplicate DR Number properties, and now matches against every stored deviation on a POA&M
- Axonius and legacy ServiceNow issue sync no longer fail when RegScale reports that the parent record has no readable issues
- FedRAMP DRF import no longer creates two deviations and two DR Number properties when one new DR number appears for two POA&Ms (the later row is skipped and reported), lists rows skipped for a DR-number conflict in the import report, no longer fails when no module is given, and loads every deviation of each POA&M from servers that offer it
