Elasticsearch 9.4.7 → 9.5.6
9 releases · 0 breaking changes · 28 security fixes · 6 advisories fixed
28security0breaking0deprecated134feature201fix
Vulnerabilities fixed by this upgrade
- 6.5 CVE-2026-103008 Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted request that causes the server to construct and process a deeply nested data structure with n…
- 7.1 CVE-2026-103009 Authorization Bypass Through User-Controlled Key (CWE-639) in Elasticsearch can lead to Information Disclosure via a specially crafted cross-cluster search request that references an unauthorized s…
- 6.5 CVE-2026-103005 Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user with connector management privileges…
- 6.5 CVE-2026-102404 Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). A low-privileged authenticated user can submit a specially crafted q…
- 4.3 CVE-2026-102408 Inefficient Regular Expression Complexity (CWE-1333) in Elasticsearch can lead to denial of service via Regular Expression Exponential Blowup (CAPEC-492). The ES|QL CHUNK function's recursive chunk…
- 6.5 CVE-2026-102409 Uncontrolled Recursion (CWE-674) in Elasticsearch can allow an authenticated user with low privileges to terminate an Elasticsearch node, resulting in denial of service, via Excessive Allocation (C…
Breaking changes
None in the release notes.
Security changes
- security Fixes CVE-2026-103009: Authorization Bypass Through User-Controlled Key (CWE-639) in Elasticsearch can lead to Information Disclosure via a specially crafted cross-cluster search request that references an unauthorized s… in 9.5.5
- security Fixes CVE-2026-103008: Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted request that causes the server to construct and process a deeply nested data structure with n… in 9.5.5
- security Fixes CVE-2026-103005: Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user with connector management privileges… in 9.5.5
- security Fixes CVE-2026-102404: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). A low-privileged authenticated user can submit a specially crafted q… in 9.5.5
- security Fixes CVE-2026-102409: Uncontrolled Recursion (CWE-674) in Elasticsearch can allow an authenticated user with low privileges to terminate an Elasticsearch node, resulting in denial of service, via Excessive Allocation (C… in 9.5.5
- security Fixes CVE-2026-102408: Inefficient Regular Expression Complexity (CWE-1333) in Elasticsearch can lead to denial of service via Regular Expression Exponential Blowup (CAPEC-492). The ES|QL CHUNK function's recursive chunk… in 9.5.5
- security Fixes CVE-2026-103007: Incorrect Authorization (CWE-863) in Elasticsearch can lead to Privilege Escalation via a delegated administrative privilege whose scope is not fully enforced during authorization checks. Elasticse… in 9.5.4
- security Fixes CVE-2026-94396: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130) in 9.5.4
- security Fixes CVE-2026-94397: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130) in 9.5.4
- security Fixes CVE-2026-94398: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130) in 9.5.4
- security Fixes CVE-2026-94399: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130) in 9.5.4
- security Fixes CVE-2026-82300: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). in 9.5.4
- security Fixes CVE-2026-102411: Allocation of Resources Without Limits or Throttling (CWE-770) in Elasticsearch can lead to Denial of Service via Excessive Allocation (CAPEC-130). Elasticsearch enforces a size limit on the user-s… in 9.5.3
- security Fixes CVE-2026-82294: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). in 9.5.3
- security Fixes CVE-2026-94408: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130) in 9.5.3
- security Fixes CVE-2026-103006: Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted, deeply nested request submitted to the aggregation feature of the search API. Elasticsearch… in 9.5.2
- security Fixes CVE-2026-72642: The native inference process that Elasticsearch uses to evaluate uploaded machine learning models accepts a model operation that computes a memory address from an offset supplied inside the model,… in 9.5.1
- security Fixes CVE-2026-72686: A flaw in Elasticsearch allows a low-privileged authenticated user to submit a single request containing a crafted user-supplied input. A specific internal component validates the input using a rec… in 9.5.1
- security Fixes CVE-2026-72687: A flaw in Elasticsearch allows a low-privileged authenticated user to submit a single small request containing a forged opaque identifier. Elasticsearch decodes and deserializes the identifier befo… in 9.5.1
- security Fixes CVE-2026-72678: Elasticsearch does not validate a size value taken from a user-supplied input before that value is used to reserve memory for an internal data structure. An authenticated user holding only read pri… in 9.5.1
- security Fixes CVE-2026-72639: Elasticsearch does not enforce an upper bound on a user-supplied count accepted by a search highlighting option, and the allocation derived from that count is not accounted against any circuit brea… in 9.5.1
- security Fixes CVE-2026-72645: Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user holding only read privileges on a si… in 9.5.1
- security Fixes CVE-2026-103009: Authorization Bypass Through User-Controlled Key (CWE-639) in Elasticsearch can lead to Information Disclosure via a specially crafted cross-cluster search request that references an unauthorized s… in 9.4.8
- security Fixes CVE-2026-103008: Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted request that causes the server to construct and process a deeply nested data structure with n… in 9.4.8
- security Fixes CVE-2026-103005: Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user with connector management privileges… in 9.4.8
- security Fixes CVE-2026-102404: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). A low-privileged authenticated user can submit a specially crafted q… in 9.4.8
- security Fixes CVE-2026-102409: Uncontrolled Recursion (CWE-674) in Elasticsearch can allow an authenticated user with low privileges to terminate an Elasticsearch node, resulting in denial of service, via Excessive Allocation (C… in 9.4.8
- security Fixes CVE-2026-102408: Inefficient Regular Expression Complexity (CWE-1333) in Elasticsearch can lead to denial of service via Regular Expression Exponential Blowup (CAPEC-492). The ES|QL CHUNK function's recursive chunk… in 9.4.8
Every release in between
featureESQL:DS: Authorize datasets named by received compute plans #162687
featureBump bundled JDK to 27.0.1.0.2 #163046
featureBump bundled JDK to 27.0.1.0.3 #163627
featureUpgrade Jackson to 2.21.8 #163710
featureUpgrade to lucene 10.5.2 #161372
featureAdd EuroBERT and Jina v5 ops to graph validation allowlist #3015
featureBetter error handling regarding quantiles state documents #2894
featureBetter handling of invalid JSON state documents #2895
featureBetter messaging regarding OOM process termination #2841
featureDowngrade log severity for a batch of recoverable errors #2889
featureHarden pytorch_inference with TorchScript model graph validation #3008 (issue: #2890)
featureImprove adherence to memory limits for the bucket gatherer #2848
featureReport the actual memory usage of the autodetect process #2846
featureUpdate the PyTorch library to version 2.7.1 #2863
featureMake GCS Storage retry on SSL exception #161154
featureBump lz4 to 1.11.4 #161406
featureBump snappy-java to 1.1.10.11 #161310
featureUpdate jsoup to 1.23.2 #160619
featureUpgrade Bouncy Castle to 1.86 #161326
featureUpgrade bcutil-fips to 2.0.8 #162600
featureUpgrade reactor-core to 3.8.7 #160494
featureAdd legacy_content_md5 S3 client setting #162197
fixReject non-positive size in composite aggregation #163307 (issue: #163038)
fixFail AllocationActionListener delegate only once #162309 (issues: #160180, #152475)
fixBound heap/allocation growth in analysis-phonetic #159667
fixFix streamed requests with secondary authentication being dispatched off the network thread #162171
fixApply field visibility to constant_keyword #159351
fixFix count drift in multi-valued binary index sort at flush #162228
fixAvoid quadratic failed response size when failure store redirects fail #162017 (issue: #157859)
fixShow the effective index mode and settings of the next backing index in GET _data_stream, and honor settings that a request explicitly unsets. #161250 (issue: #125685)
fixTSDB: not all documents with invalid timestamps are redirected to the failure store #161117 (issue: #161001)
fixDon't return unassigned shards in primary shard routing iterator #160492
fixHandle IndexShardClosedException and shutdown in ReplicationOperation::updateCheckPoints #162378 (issue: #158303)
fixMake downsample resume from the last indexed tsid work #162669
fixAvoid nested listeners in doc-partitioning cache #158910
fixBind ES|QL lookup requests to their target shard #162521
fixCache output #161282
fixCatch REPLACE regex StackOverflowError #157957
fixCircuit-break before growing the array #160592
fixCount only distinct warnings towards the cap #161338 (issues: #161319, #148398)
+83 more items in the release notessecurityFixes CVE-2026-103009: Authorization Bypass Through User-Controlled Key (CWE-639) in Elasticsearch can lead to Information Disclosure via a specially crafted cross-cluster search request that references an unauthorized s…
securityFixes CVE-2026-103008: Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted request that causes the server to construct and process a deeply nested data structure with n…
securityFixes CVE-2026-103005: Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user with connector management privileges…
securityFixes CVE-2026-102404: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). A low-privileged authenticated user can submit a specially crafted q…
securityFixes CVE-2026-102409: Uncontrolled Recursion (CWE-674) in Elasticsearch can allow an authenticated user with low privileges to terminate an Elasticsearch node, resulting in denial of service, via Excessive Allocation (C…
securityFixes CVE-2026-102408: Inefficient Regular Expression Complexity (CWE-1333) in Elasticsearch can lead to denial of service via Regular Expression Exponential Blowup (CAPEC-492). The ES|QL CHUNK function's recursive chunk…
featureLimit the multi_terms aggregation to a maximum of 128 fields #157906
featureAdd the manage, create_index, read, index, write, and delete privileges on third-party agent indices to the kibana_system role #160185
featureUpgrade the Parquet Hadoop bundle dependency #158981
featureUpgrade zstd-jni to 1.5.7-16 #159621
featurePass the reasoning effort setting through to OpenAI chat completion requests #156505
featureUpgrade Jackson to 2.21.7 #160501
featureUpgrade Netty to 4.1.138.Final #159561
fixFix replica divergence on indices that have sequence numbers disabled #158870 (issue: #150408)
fixPrevent the allocation explain API from starting gateway shard data fetches #157766 (issue: #155449)
fixAdd circuit breaker accounting to the Base64 functions, MV_CONCAT, and MV_ZIP #159659
fixClear Parquet and ORC filter state between query reuse cycles #158155
fixDisallow full text functions after UNION ALL when one of its branches contains a top N operation #158578
fixFix a ClassCastException in Parquet late-materialization filters when a predicate batch contains only null values #157587 (issue: #157313)
fixFix METADATA behavior with subqueries and logical views #157233 (issue: #160116)
fixFix a NullPointerException when folding a regular expression #158768 (issue: #158748)
fixFix TO_STRING being ignored in MATCH and MATCH_PHRASE on indexed fields #159416 (issue: #159395)
fixFix TO_TEXT being ignored in MATCH and MATCH_PHRASE on indexed fields #159269 (issue: #159265)
fixFix handling of the isPartial flag #157475 (issue: #157440)
fixFix an analyzer loop caused by repeated conversions #159257
fixFix nested fields conflicting with object fields #158573 (issue: #154011)
fixRead partition_detection and partition_path on the query path #157208
fixReject TRANGE queries that have a null start or offset #159125
fixReturn a warning instead of failing on cumulative T-Digests #160534
fixReturn a warning when a GROK typed conversion fails #160574 (issue: #160564)
fixHandle refresh exceptions in ensureShardSearchActive #159526
fixLimit the length of connector descriptions #159638
fixLimit geometry nesting depth when a geometry is constructed #160004
fixFix edge selection in the H3 great-circle latitude correction #160228 (issue: #159682)
fixConvert RecursiveChunker to an iterative implementation and cap the size of its separator list #158589
fixClear buffer files at startup #159701
fixAllow multipage PDFs in the semantic field #159641 (issue: #158773)
fixDetect level changes that coincide with the detection of new seasonality #3209 (issue: #2730)
fixStabilize uncertain trend forecasts #3189 (issue: #2772)
fixResolve high-cardinality keyword queries to ScanningBinaryDocValuesAutomatonQuery #158603 (issue: #158597)
+13 more items in the release notessecurityFixes CVE-2026-103007: Incorrect Authorization (CWE-863) in Elasticsearch can lead to Privilege Escalation via a delegated administrative privilege whose scope is not fully enforced during authorization checks. Elasticse…
securityFixes CVE-2026-94396: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130)
securityFixes CVE-2026-94397: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130)
securityFixes CVE-2026-94398: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130)
securityFixes CVE-2026-94399: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130)
securityFixes CVE-2026-82300: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130).
featureAdd manage, create_index, read, index, write, delete, permission for third party agent indices kibana_system #156029
featureUpgrade Jackson to 2.21.6 #157295 (issue: #141442)
featureAdd EuroBERT and Jina v5 ops to graph validation allowlist #3015
featureBetter error handling regarding quantiles state documents #2894
featureBetter handling of invalid JSON state documents #2895
featureBetter messaging regarding out of memory process termination #2841
featureDowngrade log severity for a batch of recoverable errors #2889
featureHarden pytorch_inference with TorchScript model graph validation #3008 (issue: #2890)
featureImprove adherence to memory limits for the bucket gatherer #2848
featureReport the actual memory usage of the autodetect process #2846
featureUpdate the PyTorch library to version 2.7.1 #2863
featureApply _msearch memory bounds, cancellation, and metrics to _msearch/template API #157642
featureImprove vector search calibration performance #153577
fixBound min_hash filter parameters to prevent out of memory errors #154480
fixCap min_hash filter parameters to a valid range #158211
fixReject allow_restricted_indices=true consistently in roles granted by users with the manage_roles privilege #158831
fixFix synthetic _id Terms#getMax crash during relocation id-lookup prewarm #158537
fixAdd doc-values fallback for unsigned_long queries #158545
fixFix incorrect results with COUNT(mv_field) on not indexed numeric or date fields #158381
fixReturn 400 for unresolved MMR query vector #158301 (issue: #157876)
fixWhen reversing strings, treat carriage return line feed (CRLF) as a single control character, in line with UTF guidelines #158745
fixFix null pointer exception in Amazon Bedrock chat completion when a message has no content #158527 (issue: #158521)
fixFail closed on incomplete TorchScript pre-load state-hook scan #3149
fixFail gracefully when restoring a categorizer with an out of range token ID #3143
fixFix flaky concurrent least frequently used (LFU) cache count invariant under lock timeouts #3090
fixHarden the Linux system call filter for machine learning native processes to block non-native instruction set variants #3080
fixMark machine learning controller non-dumpable before accepting commands #3081
fixPrevent anomaly detection job reopen from exhausting search scroll contexts during mass reassignment #154925 (issue: #153260)
fixReject TorchScript custom state hooks before load and forbid inductor::_reinterpret_tensor #3078
fixReturn HTTP 4xx status codes when machine learning nodes are exhausted #155310
fixFix LIKE/RLIKE list of patterns returning wrong results on non-indexed keyword fields and errors on wildcard fields #158228
fixFix missing counts in contains mapper query #158187
fixFix knn query pre-filtering for exists queries on inference fields #158296 (issue: #157951)
fixGuard against oversized protobuf requests causing out of memory failures #157968
+3 more items in the release notessecurityFixes CVE-2026-102411: Allocation of Resources Without Limits or Throttling (CWE-770) in Elasticsearch can lead to Denial of Service via Excessive Allocation (CAPEC-130). Elasticsearch enforces a size limit on the user-s…
securityFixes CVE-2026-82294: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130).
securityFixes CVE-2026-94408: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead denial of service via Excessive Allocation (CAPEC-130)
featureAdd request.raw_body to audit events for protobuf request bodies #158143
featureReject oversized request bodies when request-body auditing is enabled #157760
featureSpeed up vector quantization calibration during index merge #153577
fixLimit min_hash filter parameters to prevent integer overflow #158211
fixPrevent out-of-memory errors from extreme min_hash filter settings #154480
fixFix field-level security filtering for _field_names terms #157889
fixPrevent indexing-pressure rejections from stopping an entire bulk shard request #158235 (issue: #158212)
fixFix BYTE_LENGTH returning 0 for keyword fields in columnar mode #157858
fixFix incorrect MV_MIN and MV_PERCENTILE results in columnar mode #157857 (issue: #157817)
fixFix data stream auto-sharding using stale index settings #157634 (issue: #134505)
fixFix MV_MIN and MV_MAX on ip fields in columnar mode #157790 (issue: #157521)
fixFix ROUND overflowing integer values when used with negative precision #156412 (issue: #156411)
fixFix TS STATS dropping constant literal aggregates #157148 (issue: #157103)
fixFix failures in string functions that use extracted fields #156980
fixFix failures when reading _ignored_source out of document order #157798
fixFix query failures when a multi-field sub-field has conflicting types across indices #156326
fixFix translog resource leaks and leftover upload tasks on node shutdown #149429 (issue: #149343)
fixFix secret rotation in the inference _update API #157214
fixReject a blank datafeed ID in stop datafeed requests #157929
fixReject a blank job ID in close job requests #158020
fixReport skipped clusters in datafeed stats after a cross-cluster search failure #157567
fixFix composite aggregations returning no buckets on logsdb timestamp fields #158060 (issue: #158008)
fixFix contains queries failing on single-valued keyword fields #158187
fixFix search crashes from empty collect ranges in doc-values queries #157630
fixFail reindex tasks that cannot relocate during node shutdown #150342 (issues: #150294, #150295)
fixFix the SQL INSERT function ignoring the result size limit #157752
fixFix kNN automatic pre-filtering for exists queries on inference fields #158296 (issue: #157951)
fixSpeed up _shard_doc search_after pagination by applying sort pruning #157044 (issue: #155559)
fixFix leaking cancellation tasks in incremental bulk indexing #158108 (issue: #158018)
fixReduce memory usage when retrieving component and composable templates #158175
fixFix reading bfloat16 values from older index formats with different endianness #157730 (issue: #157696)
fixRestore early-exit scoring across segments for IVF search #157229
securityFixes CVE-2026-103006: Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted, deeply nested request submitted to the aggregation feature of the search API. Elasticsearch…
featureUpgrade Bouncy Castle FIPS to 1.0.2.7 and 2.0.2 #156296
featureUpgrade ASM to 9.10.1 #156213
featureUpgrade the bundled JDK to 26.0.2 #156203
featureUpgrade to Lucene 10.5.1 #156643
featureUpgrade Jackson to 2.21.5 for ES|QL and Arrow #156368
fixFix rank estimation ignoring min and max in exponential histograms #156268 (issue: #156057)
fixFix duplicate field in the cumulative histogram reset document #156287 (issue: #156276)
fixAccount for deferred aggregation memory in the request circuit breaker #155600 (issue: #148516)
fixAccount for t-digest percentiles memory in the request circuit breaker #155586
fixFix TS STATS aggregate aliases that collide with grouping keys #155312 (issue: #153507)
fixFix TS queries that name a time bucket after the timestamp field #155623
fixFix incorrect results from Parquet predicate pushdown on multi-valued fields #156604
fixReplace an IN subquery evaluated as a false filter with an empty local relation #155648 (issue: #155563)
fixFix Anthropic translation to the unified schema #155314
fixFix Google Vertex AI tool calls with non-string argument values #156665 (issue: #156644)
fixFix inference and security cache clearing on multi-node clusters #156603
fixTranslate unified tool-calling message blocks to the Anthropic format #154607
fixFix IllegalStateException when a truncated string cuts off in the middle of a JSON object #156382 (issue: #156289)
fixFail closed when the TorchScript state hook scan is incomplete #3149
fixFail gracefully when restoring a categorizer with an out-of-range token ID #3143
fixCount failed _msearch sub-search responses against the circuit breaker #156683
fixEnsure batched queries always return a response #155908
fixFail the request instead of the node on deeply nested aggregations #155745
fixFix nested and mode-based sorts on integer fields returning incorrect values on indices created before 8.19 or in 9.0.x #155580 (issue: #155243)
fixKeep scroll contexts on transient search queue rejection #155697 (issue: #90912)
fixLimit aggregation nesting depth with search.aggs.max_nested_depth #155743
fixReject null values in search_after instead of failing the search #132434 (issue: #132370)
fixStop returning a user field named _type as search hit metadata #155706 (issue: #110438)
fixHalt the node on fatal errors during S3 multipart uploads #156765
fixPreserve security headers when copying a transform configuration #156191
fixFix DOT_PRODUCT and COSINE score clamping in the BBQ vector scorer #156015 (issues: #156010, #156011, #156009, #156012)
fixFix search failures when many field patterns match no vector fields #156466
fixFix the auto_calibrate index option being rejected by a leftover experimental flag #156623
fixScore nested kNN inner_hits like the query phase #156332 (issue: #138496)
securityFixes CVE-2026-72642: The native inference process that Elasticsearch uses to evaluate uploaded machine learning models accepts a model operation that computes a memory address from an offset supplied inside the model,…
securityFixes CVE-2026-72686: A flaw in Elasticsearch allows a low-privileged authenticated user to submit a single request containing a crafted user-supplied input. A specific internal component validates the input using a rec…
securityFixes CVE-2026-72687: A flaw in Elasticsearch allows a low-privileged authenticated user to submit a single small request containing a forged opaque identifier. Elasticsearch decodes and deserializes the identifier befo…
securityFixes CVE-2026-72678: Elasticsearch does not validate a size value taken from a user-supplied input before that value is used to reserve memory for an internal data structure. An authenticated user holding only read pri…
securityFixes CVE-2026-72639: Elasticsearch does not enforce an upper bound on a user-supplied count accepted by a search highlighting option, and the allocation derived from that count is not accounted against any circuit brea…
securityFixes CVE-2026-72645: Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user holding only read privileges on a si…
featureUpdate Bouncy Castle FIPS TLS libraries #155937
featureUpgrade lz4-java to 1.11.1 #155598
featureAdd EuroBERT and Jina v5 ops to the graph validation allowlist #3015
featureDowngrade log severity for a batch of recoverable errors #2889
featureHarden pytorch_inference with TorchScript model graph validation #3008 (issue: #2890)
featureImprove adherence to memory limits for the bucket gatherer #2848
featureImprove error handling for quantiles state documents #2894
featureImprove handling of invalid JSON state documents #2895
featureImprove messaging for OOM process termination #2841
featureReport the actual memory usage of the autodetect process #2846
featureUpdate the PyTorch library to version 2.7.1 #2863
featureUpgrade Apache HttpComponents 5.x to address CVEs #153057
featureUpgrade Apache HttpCore 5 to 5.4.3 to fix header DoS CVEs #153467
featureUpgrade Bouncy Castle to 1.85 #155819
featureCache little-endian float layout in the DiskBBQ scalar corrections loop #154373
fixTrip the request breaker on term and phrase suggesters based on backing array estimates #154837
fixFix false positives in boolean queries with must_not clauses on non-indexed fields #155936 (issue: #155653)
fixAllow garbage collection of closed search contexts in ES|QL #155418
fixApply PropagateEmptyRelation to AbstractSubqueryJoin #154768 (issue: #154755)
fixFix BUCKET with very large bucket counts #153392 (issue: #153389)
fixFix FROM_BASE64 generating invalid non-UTF-8 strings. Previously it could create binary values that ES|QL does not support in other operations; only valid UTF-8 is supported, and invalid cases now return null with a warning. #154955
fixFix MV_SORT incorrectly allowing geospatial types, which are not sortable #154417
fixFix exponential histogram merging with zero bucket overlap #155459 (issue: #153665)
fixSupport dynamically enabling history indexes in ILMHistoryTemplateRegistry #155602 (issue: #141807)
fixUpgrade JANSI to 2.4.3 to fix terminal detection on zlib-ng based systems (EL10) #155853 (issue: #154510)
fixFix flaky CIoManagerTest/testFileIoGood test #3017
fixFix flaky concurrent LFU cache count invariant under lock timeouts #3090
fixMark the ML controller non-dumpable before accepting commands #3081
fixReject TorchScript custom state hooks before load and forbid inductor::_reinterpret_tensor #3078
fixReject non-native ABIs in the ML seccomp filter (socketcall/getuid collision) #3080
fixSupport date_nanos timestamp indices #153996 (issue: #146923)
fixClamp merge scheduler thread count when it exceeds max merge count #155693 (issues: #96594, #155678)
fixLimit dot-separated identifiers per version part #154572
fixParse scroll ID from a bounded byte array #154542
+2 more items in the release notesfeaturelogsdb_columnar adds logging-oriented defaults on top of the columnar foundation: a default @timestamp mapping, and index sorting on host.name and @timestamp when those fields are present.
featurecolumnar provides the same column-oriented storage without use-case-specific defaults, suitable for general-purpose indices and data streams.
featureEarly publish DesiredBalance when newly created replicas are assigned #149645
featureExpose DesiredBalanceStats as metrics #146928
featureAllow appending synonyms to existing rules via append=true (default false) #146870 (issue: #146864)
featureAllow multiple synonym sets per filter using the synonyms API #147157 (issue: #144941)
featureAllow audit logging to be turned on/off without server restart #147333
featureChange federated feature flag to cluster config #153098
featureIntroduce feature flag for keyless auth #152684
featureProvide default jwt_audience #152362
feature[Evaluations] Register .evaluation-* as hidden indices with viewer/editor access #148880
featureSupport -remote:index-style exclusion syntax #148497
featureExpand index pressure on update expansion #147151
featureMinimize the amount of memory used by CommitReferencesInfo #147976
featureUpdate to lucene 10.5 #151959
featureUse IOContext to detect random access for bloom filters #147224
featureWrite skipindex to a separate file in TSDB Codec #147238
featureAdding dynamic template for *.lifecycle.last_activity fields #149505
featureAllow deleting a backing index via modify data streams API #151137
featureData stream lifecycle (DLM) can move data to the frozen tier #150457
featureThrottle concurrent downsampling operations in data stream lifecycle. A new dynamic cluster setting, data_streams.lifecycle.downsampling.max_indices_in_progress (default 10), caps the number of backing indices per data stream that data stream lifecycle will submit to downsampling in a single run.…
featureUpdating ecs@mappings to include new flattened gen_ai fields #148674
feature[otel-data] Add HTTP body size, severity aliases #152622
featureImprove allocation explain API for canRemain #152121 (issue: #131603)
featureMake INDICES_RECOVERY_MAX_CONCURRENT_OUTGOING_RECOVERIES setting dynamic #151138
featureSupport outbound peer recovery throttling #149319
featureAssign downsampling to least loaded candidate node #148220
featureAdd Arrow output support for date_nanos and date_range data types #150479 (issue: #146350)
featureAdd ENRICH to bytes counting #150677
featureAdd IP_LOCATION command #149421 (issues: #150231, #132489)
featureAdd range_intersects and range_contains functions #148713
featureAdd a BY subclause to CHANGE_POINT command #148473
featureAdd analyzer option in ES|QL TOP_SNIPPETS function #147369
featureAdd order option to TOP_SNIPPETS #145946
featureAdd release hook to Vector and Block #150017
featureAvoid tracking group ids for intermediate input #141466
featureBulk-grow TopN UTF-8 string encoding #149022
featureCache FilterOperator/EvalOperator toString #148354
featureChunk time-series aggregation output #151670 (issue: #147286)
featureConstant-RHS fast path for MOD and DIV evaluators #148678
+397 more items in the release notesfeatureBump bundled JDK to 27.0.1.0.2 #163046
featureBump bundled JDK to 27.0.1.0.3 #163627
featureUpgrade Jackson to 2.21.8 #163710
featureAdd EuroBERT and Jina v5 ops to graph validation allowlist #3015
featureBetter error handling regarding quantiles state documents #2894
featureBetter handling of invalid JSON state documents #2895
featureBetter messaging regarding OOM process termination #2841
featureDowngrade log severity for a batch of recoverable errors #2889
featureHarden pytorch_inference with TorchScript model graph validation #3008 (issue: #2890)
featureImprove adherence to memory limits for the bucket gatherer #2848
featureReport the actual memory usage of the autodetect process #2846
featureRestrict file system access for pytorch models #2851
featureUpdate the PyTorch library to version 2.7.1 #2863
featureMake GCS Storage retry on SSL exception #161154
featureUpgrade qa/vector opentelemetry dependency for security vulnerability #152225
featureBump lz4 to 1.11.4 #161406
featureBump snappy-java to 1.1.10.11 #161310
featureUpdate jsoup to 1.23.2 #160619
featureUpgrade Bouncy Castle to 1.86 #161326
featureUpgrade bcutil-fips to 2.0.8 #162600
featureUpgrade reactor-core to 3.8.7 #160494
fixReject non-positive size in composite aggregation #163307 (issue: #163038)
fixFail AllocationActionListener delegate only once #162309 (issues: #160180, #152475)
fixBound heap/allocation growth in analysis-phonetic #159667
fixFix streamed requests with secondary authentication being dispatched off the network thread #162171
fixApply field visibility to constant_keyword #159351
fixAvoid quadratic failed response size when failure store redirects fail #162017 (issue: #157859)
fixShow the effective index mode and settings of the next backing index in GET _data_stream, and honor settings that a request explicitly unsets. #161250 (issue: #125685)
fixTSDB: not all documents with invalid timestamps are redirected to the failure store #161117 (issue: #161001)
fixDon't return unassigned shards in primary shard routing iterator #160492
fixHandle IndexShardClosedException and shutdown in ReplicationOperation::updateCheckPoints #162378 (issue: #158303)
fixMake downsample resume from the last indexed tsid work #162669
fixAvoid nested listeners in doc-partitioning cache #158910
fixBind ES|QL lookup requests to their target shard #162521
fixCache output #161282
fixCatch REPLACE regex StackOverflowError #157957
fixCircuit-break before growing the array #160592
fixEnsure Lucene operator status is immutable #161190 (issue: #160823)
fixFix IN pushdown on ip, version, unsigned_long, date fields #161455
fixFix TS nulling converted metrics in multi-metric STATS #162130
+58 more items in the release notessecurityFixes CVE-2026-103009: Authorization Bypass Through User-Controlled Key (CWE-639) in Elasticsearch can lead to Information Disclosure via a specially crafted cross-cluster search request that references an unauthorized s…
securityFixes CVE-2026-103008: Uncontrolled Recursion (CWE-674) in Elasticsearch can lead to Denial of Service via a specially crafted request that causes the server to construct and process a deeply nested data structure with n…
securityFixes CVE-2026-103005: Memory Allocation with Excessive Size Value (CWE-789) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). An authenticated user with connector management privileges…
securityFixes CVE-2026-102404: Uncontrolled Resource Consumption (CWE-400) in Elasticsearch can lead to denial of service via Excessive Allocation (CAPEC-130). A low-privileged authenticated user can submit a specially crafted q…
securityFixes CVE-2026-102409: Uncontrolled Recursion (CWE-674) in Elasticsearch can allow an authenticated user with low privileges to terminate an Elasticsearch node, resulting in denial of service, via Excessive Allocation (C…
securityFixes CVE-2026-102408: Inefficient Regular Expression Complexity (CWE-1333) in Elasticsearch can lead to denial of service via Regular Expression Exponential Blowup (CAPEC-492). The ES|QL CHUNK function's recursive chunk…
featureLimits the multi_terms aggregation to a maximum of 128 fields #157906
featureGrants the kibana_system role the manage, create_index, read, index, write, and delete privileges on the XM Cyber indices (logs-xm_cyber.device-*, logs-xm_cyber.product-*, and logs-xm_cyber.vulnerability_index-*), so the index lifecycle management (ILM) delete step can succeed for these indices…
featureUpgrades the Parquet Hadoop bundle #158981
featureUpgrades OpenTelemetry to 1.62.0 in the Google Cloud Storage (GCS) modules #152499
featureUpgrades zstd-jni to 1.5.7-16 #159621
featurePasses the reasoning effort setting through to OpenAI chat completion requests #156505
featureUpgrades Jackson to 2.21.7 #160501
featureUpgrades Netty to 4.1.138.Final #159561
fixFixes replica divergence on indices that have sequence numbers disabled #158870 (issue: #150408)
fixPrevents the allocation explain API from starting gateway shard data fetches #157766 (issue: #155449)
fixFixes a NullPointerException that occurred when ES|QL folded a regular expression that evaluated to null #158768 (issue: #158748)
fixFixes a failure (Rule execution limit [100] reached) when a query that reads from multiple sources, such as FROM (FROM a), (FROM b), applies the same conversion function to a field more than once #159257
fixFixes ES|QL queries that fail on indices where a nested field conflicts with an object field #158573 (issue: #154011)
fixMakes the ES|QL TO_BASE64, FROM_BASE64, MV_ZIP, and MV_CONCAT functions respect the circuit breaker, so large inputs return a circuit breaker error instead of exhausting memory #159659
fixRejects TRANGE queries that have a null start or offset #159125
fixReturns null values and a warning, rather than failing the query, when a typed GROK capture such as %{NUMBER:n:int} matches a value that can't be converted to the requested type #160574
fixPrevents spurious ERROR log entries when a shard closes while a refresh triggered by a search on a search-idle shard is still queued #159526
fixLimits the length of a connector description to 8192 characters #159638
fixFixes incorrect H3 cell bounds. The latitude correction now checks both edges next to the extreme-latitude vertex instead of only one #160228 (issue: #159682)
fixLimits the nesting depth of geometry collections when a geometry is created, preventing excessive recursion when a geo_shape runtime field emits deeply nested geometries #160004
fixMakes recursive chunking use constant stack depth regardless of input size, and limits the number of separators it accepts #158589
fixIgnores unrelated files when scanning the configuration directory for log4j2.properties #150016
fixAdds the max_consecutive_extraction_failures datafeed setting. A real-time datafeed now stops automatically after repeated consecutive extraction failures instead of retrying indefinitely #159554 (issue: #158426)
fixDetects level changes that coincide with the detection of new seasonality #3209 (issue: #2730)
fixPrevents anomaly detection job reopen from exhausting search scroll contexts during mass reassignment #154925 (issue: #153260)
fixStabilizes forecasts for time series with an uncertain trend #3189 (issue: #2772)
fixFixes a NullPointerException and ClassCastException when an aggregate function is nested inside another aggregate, for example HAVING SUM(s) > 10 where s is an alias of SUM(int) #159256 (issue: #159250)
fixFixes a memory leak where shard results that arrived after a search phase failed were never released #160439 (issue: #160321)
fixFixes a request circuit breaker leak in the rank feature phase #158951
fixFixes an IllegalArgumentException (unknown transport version) when using a point in time (PIT) in cross-cluster search on mixed-version clusters #159248 (issue: #158991)
fixFixes failures in sorted searches when a shard returns an empty result after timing out #160132
fixAdds validation that the shards in a point in time (PIT) ID match their reader contexts, so a corrupted PIT ID no longer returns unreliable search results #160179
fixReleases top_hits results when the cross-cluster search merge reduce fails #160363
fixFixes searches that return a 404 error when a remote cluster is missing the queried index during the inference rewrite and ccs_minimize_roundtrips is false or a scroll is used #160207 (issue: #160203)
+2 more items in the release notes