← Back to Documentation

Release Notes - Version 2.0.6

TYCHON Quantum Readiness Scanner

Version 2.0.6

Latest Release Hotfix Release

Version 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

TQR-1577

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.

TQR-1586

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.

TQR-1587

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.

TQR-1589

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.

TQR-1590

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.

TQR-1592

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.

TQR-1603

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.

TQR-1607

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.

TQR-1644

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.

TQR-1657

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.

TQR-1658

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.

TQR-1660

Minimal FlatNDJSON memory asset IDs

Fixed missing asset IDs in memory scan records when using Minimal FlatNDJSON output.

TQR-1661

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.

TQR-1662

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

TQR-1604

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.

Five vulnerabilities addressed by the Go 1.26.9 and x/net v0.60.0 update. CVE links point to the corresponding Go security advisories.
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

TQR-1586 TQR-1587 TQR-1589 TQR-1604 TQR-1605
  • 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_findings as null, 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.

TQR-1557

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.

TQR-1572

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.

Previous Release — 2.0.5