diff --git a/build-tools-internal/version.properties b/build-tools-internal/version.properties
index 82d5645af232e..4b4c143d220bc 100644
--- a/build-tools-internal/version.properties
+++ b/build-tools-internal/version.properties
@@ -1,5 +1,5 @@
elasticsearch = 9.2.0
-lucene = 10.3.0
+lucene = 10.3.1
bundled_jdk_vendor = openjdk
bundled_jdk = 25+36@bd75d5f9689641da8e1daabeccb5528b
diff --git a/docs/Versions.asciidoc b/docs/Versions.asciidoc
index aa02432b42b2a..f2cebed62a02e 100644
--- a/docs/Versions.asciidoc
+++ b/docs/Versions.asciidoc
@@ -1,8 +1,8 @@
include::{docs-root}/shared/versions/stack/{source_branch}.asciidoc[]
-:lucene_version: 10.3.0
-:lucene_version_path: 10_3_0
+:lucene_version: 10.3.1
+:lucene_version_path: 10_3_1
:jdk: 11.0.2
:jdk_major: 11
:build_type: tar
diff --git a/docs/changelog/136030.yaml b/docs/changelog/136030.yaml
new file mode 100644
index 0000000000000..86320697bdf4a
--- /dev/null
+++ b/docs/changelog/136030.yaml
@@ -0,0 +1,5 @@
+pr: 136030
+summary: Update to lucene 10.3.1
+area: Search
+type: feature
+issues: []
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 334b488b16c11..cb09836ce794e 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -3185,129 +3185,129 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/server/src/main/java/org/elasticsearch/index/IndexVersions.java b/server/src/main/java/org/elasticsearch/index/IndexVersions.java
index de561ec82a53b..e89d001d9c9be 100644
--- a/server/src/main/java/org/elasticsearch/index/IndexVersions.java
+++ b/server/src/main/java/org/elasticsearch/index/IndexVersions.java
@@ -186,6 +186,7 @@ private static Version parseUnchecked(String version) {
public static final IndexVersion TSID_CREATED_DURING_ROUTING = def(9_037_0_00, Version.LUCENE_10_2_2);
public static final IndexVersion UPGRADE_TO_LUCENE_10_3_0 = def(9_038_0_00, Version.LUCENE_10_3_0);
public static final IndexVersion IGNORED_SOURCE_COALESCED_ENTRIES = def(9_039_0_00, Version.LUCENE_10_3_0);
+ public static final IndexVersion BACKPORT_UPGRADE_TO_LUCENE_10_3_1 = def(9_039_0_01, Version.LUCENE_10_3_1);
/*
* STOP! READ THIS FIRST! No, really,