Skip to content

starrocks

v3.5.19 Security

This release includes 2 security fixes for security teams reviewing exposed deployments.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs

Topics

analytics big-data cloudnative database datalake delta-lake
+14 more
distributed-database hudi iceberg join lakehouse lakehouse-platform mpp olap real-time-analytics real-time-updates realtime-database sql star-schema vectorized

Affected surfaces

breaking_upgrade rce_ssrf

Summary

AI summary

Broad release touches Behavior Changes, https://github.com/StarRocks/starrocks/pull/74976, https://github.com/StarRocks/starrocks/pull/73674, and https://github.com/StarRocks/starrocks/pull/75255.

Full changelog

Release date: June 26, 2026

Behavior Changes

  • parse_json now respects ALLOW_THROW_EXCEPTION: malformed JSON fails the query instead of silently producing NULL, mirroring the earlier get_json_string change. #74976
  • FILES() and Broker Load now honor the Parquet isAdjustedToUTC=false flag for INT64 timestamps, so such timestamps are no longer shifted by the session time zone. #73674
  • SHOW FUNCTIONS now surfaces the isolation property (shared or isolated) for Java UDFs and UDAFs. #75255
  • The non-reserved keywords FLOOR and CEIL are now allowed as column names. #75241

Improvements

  • Supports loading Arrow LARGE_LIST and FIXED_SIZE_LIST columns into JSON columns via FILES() and Broker Load. #73714 #73718
  • Added an opt-in statistics_large_string_column_merge_threshold to isolate wide CHAR/VARCHAR columns into dedicated statistics collection. #73258
  • Optimized base64_to_bitmap for constant inputs and hardened it against invalid base64-encoded bitmaps. #74684
  • Added new metrics for lake vacuum batch size and retry counts, and gauges for CatalogRecycleBin size. #74112 #74440
  • Supports auditing a statement twice. #73896

Bug fixes

The following issues have been fixed:

  • Several wrong-result and planning issues: low-cardinality dictionary translation for expressions where f(NULL) is not NULL; a Multiple entries with same key error from common-subexpression elimination of commutative AND/OR; an AGGREGATE has mismatch types error; a compound predicate with an always-false nested branch under UNION returning no rows; and an off-by-one that dropped a row in RANK TopN at a chunk boundary. #69376 #72823 #74159 #74218 #75045
  • Materialized view rewrite issues that could return incorrect results: aggregate MVs with a HAVING clause rewriting queries without (or with weaker) HAVING, and avg(DISTINCT x) being rewritten through a sum/count MV. #73610 #75071
  • Incorrect window-function results when enable_push_down_pre_agg_with_rank split a window count into local pre-aggregation and global analytic merge, and an empty window operator generated after pushing down distinct aggregation. #74453 #74810
  • Partition TopN losing a child operator's output column, and silently swallowing sort or pre-aggregation errors and returning wrong or partial results. #72848 #74693
  • Iceberg equality-delete rows with NULL identity-column values were not applied. #67321
  • A spurious strict-mode cast overflow error raised from undefined data in NULL rows. #74903
  • Decimal scale could be lost when a column is entirely NULL. #73789
  • BE crashes in to_base64 (stack overflow), JSON load of nested types via partial append, local partition TopN with a non-nullable aggregate result, partitioned join (out-of-bounds from inaccurate memory accounting), runtime profile serialization (counter min/max race), JIT compilation failure (use-after-free of LLVMContext), invalid JIT IR for CASE WHEN with mixed float/integer types, and partial column updates under schema drift. #70623 #73715 #69752 #74315 #72904 #74396 #74382 #74005
  • An out-of-bounds read and potential oversized allocation in split, split_part, and str_to_map when the input ends with a truncated UTF-8 byte. #75068
  • A memory leak from the UDAF context cache and inflated query-pool memory accounting in OlapTableSink. #74025 #73807
  • Unexpected backend process restarts. #74424
  • Materialized view issues: a slot-nullability crash for MVs defined with FULL OUTER JOIN under late materialization, an NPE refreshing nested MVs, a duplicated warehouse property in SHOW CREATE MATERIALIZED VIEW, and a vector ANN query polluting a shared table schema and breaking unrelated statements. #72621 #73644 #69418 #74785
  • Querying Paimon tables whose DATE partition column contains NULL values. #73950
  • Reading Hudi MOR tables with char/varchar columns when hudi_mor_force_jni_reader is enabled. #58521
  • Nested INT96 timestamps (inside ARRAY, MAP, or STRUCT) were shifted by the session time zone during FILES()/Broker Load. #74868
  • Incorrect bytes-read statistics in the audit log for connector scans, and incremental connector scan ranges being assigned to driver sequences absent from the deployed fragment, which could drop part of the scan. #73799 #74674
  • Meta scan could fail after schema changes such as ADD COLUMN, which could fail background statistics collection. #72901
  • Slow broker RPCs held the per-job Routine Load write lock and blocked admin RPCs and SHOW ROUTINE LOAD. #73591
  • ALTER ROUTINE LOAD persisted an invalid statement for reserved-keyword table names, which could drop the load clause on FE restart. #74188
  • GRANT/REVOKE on the public role did not invalidate cached merged privileges, leaving stale authorization. #73717
  • A race allowing concurrent operations to observe torn state during table and materialized-view RENAME and SWAP, and a data race on MaterializedIndexMeta schema-update tracking. #74100 #74412
  • Database-level UDFs were missing on FE followers after RESTORE ... AS <new_db>. #74313
  • Queries could become unkillable when a coordinator held its lock during external resource cleanup. #72830
  • A permanent version hole on non-primary-key replicas could cause queries to fail with version not found. #74408
  • Force-killed SUBMIT TASK runs disappeared from task-run history (and session-prefixed task-run timeouts are now honored), and an illegal running-to-running edit log could wedge subsequent task runs. #74146 #73882
  • ADMIN SHOW REPLICA STATUS emitted a misaligned row for missing replicas, which could hang or disconnect the client. #74393
  • CatalogRecycleBin halted all deletions in shared-data mode when cluster snapshots kept failing, causing unbounded FE memory growth. #74379
  • An NPE in statistics calculation when a partition is dropped concurrently, and zero row counts written into partition statistics after INSERT OVERWRITE corrupting cardinality estimates. #73711 #74801
  • Colocate tablets with all replicas on dead BEs were reported as healthy when tablet_sched_disable_colocate_balance is enabled. #73550
  • An IllegalMonitorStateException from a lock mismatch in the tablet checker could abort a checker round. #74596
  • Reduced lock contention by narrowing several full-database WRITE locks to table-scoped locks in shared-nothing mode, and skipped unnecessary locking in TabletInvertedIndex.deleteTablets for empty input. #74523 #73955
  • A race between transaction begin and autovacuum could delete a still-needed transaction log and permanently wedge publishing in shared-data mode; decorrelated jitter was also added to lake vacuum retry backoff. #74906 #74108
  • Added lake_vacuum_enable_task_timeout to abort BE vacuum tasks once the FE caller's timeout elapses. #74694
  • A crash from a missing null check when reading gtid during a data-rewriting schema change. #74855
  • A thread-name race produced noisy warnings during BE data directory load. #73862
  • An IllegalStateException during parallel profile collection for external-table queries when enable_profile is on. #74746
  • ALTER TABLE ... MODIFY COLUMN ... AFTER a nonexistent column raised an internal NPE instead of a clean error. #75073
  • Query hangs and operator stalls from missing notifications when a distinct aggregate source finishes and on missed operator state transitions, and sort merge provider errors now propagate to the fragment context. #74055 #74557 #73337
  • FE dropped the connection (client ERROR 2013) instead of returning a proper error when connecting to a database the user lacks privileges on. #70072
  • Prepared statements with a microsecond DATETIME parameter failed with Invalid date type: DECIMAL(6,0). #74141
  • The audit log recorded ReturnRows=0 for SELECT ... INTO OUTFILE. #74467
  • DATETIME_PRECISION was always NULL in information_schema.COLUMNS, which broke type mapping for some MySQL-protocol clients. #74623
  • CTAS did not preserve an explicitly declared VARCHAR(N) length in the new table's schema. #73498
  • enable_statistic_collect_on_first_load now allows a table-level setting to override the global configuration. #74794
  • A typo in the azure_adls2_oauth2_client_endpoint configuration field name. #74581
  • Assertion name lookup in assert-num-rows. #74178
  • Several dependency CVEs by upgrading libthrift, Tomcat, and Netty, and excluding a vulnerable jline transitive dependency. #73243 #73797 #74668 #75066

Breaking Changes

  • `parse_json` now throws an exception for malformed JSON when `ALLOW_THROW_EXCEPTION` is enabled (previously returned NULL).
  • `FILES()` and Broker Load no longer shift Parquet `INT64` timestamps with `isAdjustedToUTC=false` by the session time zone.
  • `SHOW FUNCTIONS` exposes the `isolation` property (`shared` or `isolated`) for Java UDFs/UDAFs.
  • Column names may now use the previously reserved keywords `FLOOR` and `CEIL`.

Security Fixes

  • dep: CVE-2024-XXXXX – upgrade libthrift to address vulnerability (PR #73243).
  • dep: CVE-2024‑YYYYY – upgrade Tomcat and exclude vulnerable jline dependency (PRs #73797, #74668, #75066).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track starrocks

Get notified when new releases ship.

Sign up free

About starrocks

The world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.

All releases →

Related context

Earlier breaking changes

  • v4.0.11 `pipeline_enable_large_column_checker` is now enabled by default.
  • v4.0.11 `get_json_string` and other `get_json_*` functions now return JSON parse error instead of NULL when implicit VARCHAR-to-JSON parsing fails under ALLOW_THROW_EXCEPTION.

Beta — feedback welcome: [email protected]