Version 2.0.6
Latest Release Hotfix ReleaseVersion 2.0.6 fixes PKI discovery and certificate output, restores application JSON and tracking event fields, and updates Go and x/net to address five HTTP/2 vulnerabilities.
Upgrading from 2.0.5: required data migration. Follow the Splunk sourcetype repair guide to copy, validate, and delete historical events with the old sourcetypes so they appear in dashboards that use tychon:crypto:json. Upgrading the scanner affects new events only.
Bug Fixes
Venafi VaaS signature algorithm
Venafi VaaS PKI certificate events now emit x509.signature_algorithm from the existing normalized certificate signature value at full, standard, and minimal detail levels. The value is emitted when the source provides a signature algorithm; it is not inferred from the public key. Other PKI sources retain their existing output.
DigiCert certificate fingerprints and assessment wording
CertCentral certificate downloads can fall back from the certificate-ID endpoint to the order-ID PEM endpoint after HTTP 400 or 404. If both PEM endpoints return HTTP 400 or 404, the scanner tries the certificate-ID chain endpoint and requires exactly one end-entity certificate; CA certificates are not used as the leaf. Downloaded certificates must match existing serials and fingerprints; for order-ID downloads when those are unavailable, a unique serial-number lookup must verify the original order and certificate IDs. Verified certificate bytes supply SHA-256 fingerprints and certificate assessments. Unavailable or unverifiable downloads retain order metadata and mark discovery partial when a SHA-256 fingerprint is missing.
TQR-1586: DigiCert CertCentral orders with unknown key assessments now report Not assessed for the vulnerable and post-quantum algorithm fields in JSON and FlatNDJSON, replacing None known at this time. Supported assessments keep their existing results, including when a fingerprint is unavailable. CSV output is unchanged. This wording change does not resolve unavailable certificate fingerprints.
Exclude non-issued DigiCert requests
Rejected, canceled, pending, processing, needs-approval, and waiting-pickup orders are excluded from certificate inventory when they have no verified leaf certificate, serial number, or valid source fingerprint. Certificate identity evidence preserves inventory even when the order status disagrees. Issued, expired, revoked, reissue-pending, unknown, and missing-status orders retain their existing inventory behavior; download failures alone do not exclude them.
Windows ADCS Kerberos discovery and scan health
Windows ADCS discovery can authenticate using the current process identity through SSPI over verified LDAPS or StartTLS, with TLS channel binding and mutual authentication. This path requires a DC DNS hostname and a protected local scanner installation; it rejects plain LDAP and -insecure, and does not fall back to anonymous authentication after a failed Kerberos bind. Empty authenticated discovery reports failed scan health with a no-certificates message. Search or certificate parsing failures report failed or partial discovery while retaining valid certificates.
Preserve orphan findings in application JSON
The application-centric JSON report always includes app_report.orphan_findings at every detail level. A missing findings pointer emits null, an empty findings object emits {}, and populated findings retain their existing contents.
Retain tracking event metadata
Flat event builders now carry event.kind = "event" into every record, including later summary records. Quick cipher-scan records also emit event.action = "port_scan_result". These fields remain present across output detail levels and tracking runs that produce large numbers of records.
Stable macOS memory inventory IDs
macOS memory scan records now include stable asset IDs based on the host, process binary, and library identity. Distinct process/library assets no longer collapse into one Elasticsearch document because their IDs are missing. IDs remain stable when process IDs change.
Warnings for unsupported CPU throttle values
An unsupported -cputhrottle value now produces a warning naming the invalid value and the applied medium fallback. The scan continues with the existing fallback limits. See the CPU Throttling Guide.
Windows ADCS anonymous LDAP discovery
Windows ADCS configurations with TLSMode=none and no configured credentials now select anonymous LDAP directly instead of Kerberos. When the directory denies anonymous PKI reads, the scanner reports the LDAP search denial instead of a misleading Kerberos TLS error and completes the scan without crashing. When anonymous reads are allowed, CA certificate discovery proceeds. See the ADCS authentication guide.
Lower memory use on large filesystem scans
Filesystem scans now limit cached discovery entries and process certificate and config candidates incrementally, reducing memory growth on systems with large numbers of files. The Linux in-memory certificate scan also honors CPU throttle delays. The throttle level sets a Go runtime soft memory limit: low uses 512 MiB, medium uses 1 GiB, and high uses 2 GiB; none applies no limit. These are soft limits, not caps on total process memory. Set GOMEMLIMIT to override them. See the CPU Throttling Guide.
Distinguishing memory library paths
Native memory_scan events now include tychon.library.path when the detected path is nonempty, allowing libraries with the same display name to be distinguished. The field is included at Full, Standard, and Minimal detail levels. See the FlatNDJSON format guide.
Minimal FlatNDJSON memory asset IDs
Fixed missing asset IDs in memory scan records when using Minimal FlatNDJSON output.
Complete keystore summaries
Fixed intermittent omissions of discovered keystore summaries, including PKCS#12 and JKS files. Filesystem scans now finish collecting all keystore summaries before reporting completion.
Restore the configured Splunk sourcetype
Application and PQC inventory events now use the configured Splunk sourcetype (default tychon:crypto:json) instead of tychon:application or tychon:pqc_inventory. The event.dataset field continues to identify each event category.
HTTP/2 Security Fixes
The 2.0.6 security update upgrades Go from 1.26.7 to 1.26.9 and golang.org/x/net from v0.57.0 to v0.60.0 to address five HTTP/2 vulnerabilities. The fixes cover both the Go standard-library HTTP/2 implementation and the x/net implementation.
| CVE | Security Fix |
|---|---|
| CVE-2026-78659 | Limits excessive server memory allocation caused by malicious HTTP/2 trailer declarations. |
| CVE-2026-78660 | Rejects malformed HTTP/2 framing-related headers that could enable response smuggling when forwarded to HTTP/1 clients. |
| CVE-2026-78663 | Corrects flow-control accounting that could allow an HTTP/2 client to bypass a server's connection receive-buffer limit. |
| CVE-2026-78669 | Prevents excessive CPU consumption from repeated HTTP/2 stream window-setting changes. |
| CVE-2026-97032 | Fixes concurrent HPACK encoder access that could crash an HTTP/2 server. |
Required dependency updates accompany x/net: golang.org/x/crypto v0.57.0, golang.org/x/sys v0.48.0, and golang.org/x/text v0.42.0.
Deployments receive the standard-library fixes by installing scanner binaries rebuilt with Go 1.26.9 or a later patched toolchain. Updating dependency metadata alone does not patch an existing scanner binary.
Documentation Updates
- ADCS guide: Windows process-identity Kerberos prerequisites, verified TLS, installation trust requirements, and discovery health reporting.
- DigiCert guide: verified certificate-download fallback, partial discovery reporting, and non-issued order filtering.
- The development-container README explains the Go 1.26.9 build requirement and how to update existing build environments.
- Documentation index: current 2.0.6 release details, navigation, and links to these hotfix notes.
Upgrade Notes
- Install scanner binaries rebuilt with the patched Go toolchain to receive the standard-library security fixes.
- For Windows ADCS process-identity authentication, use verified LDAPS or StartTLS with a trusted DC certificate and DNS hostname. Install the scanner in a protected local directory; see the ADCS authentication guide.
- Consumers of application JSON must handle
app_report.orphan_findingsasnull, an empty object, or populated findings. Flat event consumers receive the restored event-kind and quick-scan action fields described above. - When upgrading an older Elastic deployment, review the 2.0.5 Kibana dashboard cleanup prerequisite before installing the dashboard package.
Known Issues
The following limitations remain in the release-branch snapshot used for these notes.
macOS EventLog truncation
macOS unified logging truncates messages at approximately 1 KB, which can leave larger certificate and PKI events as incomplete JSON. Write flatndjson or json output to a file for complete records. See EventLog Format.
Kibana Vega panel rendering
Vega panels may not resize correctly after a dashboard panel is expanded or collapsed. Refresh the dashboard or reload the page to restore sizing.