diff --git a/7-bugfix-for-CVE-2025-48989.patch b/7-bugfix-for-CVE-2025-48989.patch deleted file mode 100644 index e8032577f040aacbb82b6d6c4e083a055688f3b8..0000000000000000000000000000000000000000 --- a/7-bugfix-for-CVE-2025-48989.patch +++ /dev/null @@ -1,162 +0,0 @@ -commit f36b8a4eea4ce8a0bc035079e1d259d29f5eb7bf -Author: Mark Thomas -Date: Thu Jul 31 14:53:16 2025 +0100 - - Update the HTTP/2 overhead documentation - particularly code comments -Origin: https://github.com/apache/tomcat/commit/f36b8a4eea4ce8a0bc035079e1d259d29f5eb7bf - -diff --git a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java -index e436fa6938..f2cfd339e0 100644 ---- a/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java -+++ b/java/org/apache/coyote/http2/Http2AsyncUpgradeHandler.java -@@ -131,6 +131,9 @@ public class Http2AsyncUpgradeHandler extends Http2UpgradeHandler { - log.trace(sm.getString("upgradeHandler.rst.debug", connectionId, Integer.toString(se.getStreamId()), - se.getError(), se.getMessage())); - } -+ -+ increaseOverheadCount(FrameType.RST, getProtocol().getOverheadResetFactor()); -+ - // Write a RST frame - byte[] rstFrame = new byte[13]; - // Length -diff --git a/java/org/apache/coyote/http2/Http2UpgradeHandler.java b/java/org/apache/coyote/http2/Http2UpgradeHandler.java -index 4f5c356dea..9628f48589 100644 ---- a/java/org/apache/coyote/http2/Http2UpgradeHandler.java -+++ b/java/org/apache/coyote/http2/Http2UpgradeHandler.java -@@ -582,6 +582,8 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH - se.getError(), se.getMessage())); - } - -+ increaseOverheadCount(FrameType.RST, getProtocol().getOverheadResetFactor()); -+ - // Write a RST frame - byte[] rstFrame = new byte[13]; - // Length -@@ -1411,39 +1411,59 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH - - - void reduceOverheadCount(FrameType frameType) { -- // A non-overhead frame reduces the overhead count by -- // Http2Protocol.DEFAULT_OVERHEAD_REDUCTION_FACTOR. A simple browser -- // request is likely to have one non-overhead frame (HEADERS) and one -- // overhead frame (REPRIORITISE). With the default settings the overhead -- // count will reduce by 10 for each simple request. -- // Requests and responses with bodies will create additional -- // non-overhead frames, further reducing the overhead count. -+ /* -+ * A non-overhead frame reduces the overhead count by {@code Http2Protocol.DEFAULT_OVERHEAD_REDUCTION_FACTOR}. -+ * -+ * A simple browser request is likely to have one non-overhead frame (HEADERS) that results in a response with -+ * one further non-overhead frame (DATA). With the default settings, the overhead count will reduce by 40 for -+ * each simple request. -+ * -+ * Requests and responses with bodies will create additional non-overhead frames, further reducing the overhead -+ * count. -+ */ - updateOverheadCount(frameType, Http2Protocol.DEFAULT_OVERHEAD_REDUCTION_FACTOR); - } - - - @Override - public void increaseOverheadCount(FrameType frameType) { -- // An overhead frame increases the overhead count by -- // overheadCountFactor. By default, this means an overhead frame -- // increases the overhead count by 10. A simple browser request is -- // likely to have one non-overhead frame (HEADERS) and one overhead -- // frame (REPRIORITISE). With the default settings the overhead count -- // will reduce by 10 for each simple request. -+ /* -+ * An overhead frame (SETTINGS, PRIORITY, PING) increases the overhead count by overheadCountFactor. By default, -+ * this means an overhead frame increases the overhead count by 10. -+ * -+ * If the client ignores maxConcurrentStreams then any HEADERS frame received will also increase the overhead -+ * count by overheadCountFactor. -+ * -+ * A simple browser request should not trigger any overhead frames. -+ */ - updateOverheadCount(frameType, getProtocol().getOverheadCountFactor()); - } - - -- private void increaseOverheadCount(FrameType frameType, int increment) { -- // Overhead frames that indicate inefficient (and potentially malicious) -- // use of small frames trigger an increase that is inversely -- // proportional to size. The default threshold for all three potential -- // areas for abuse (HEADERS, DATA, WINDOW_UPDATE) is 1024 bytes. Frames -- // with sizes smaller than this will trigger an increase of -- // threshold/size. -- // DATA and WINDOW_UPDATE take an average over the last two non-final -- // frames to allow for client buffering schemes that can result in some -- // small DATA payloads. -+ /** -+ * Used to increase the overhead for frames that don't use the {@code overheadCountFactor} ({@code CONTINUATION}, -+ * {@code DATA}, {@code WINDOW_UPDATE} and {@code RESET}). -+ * -+ * @param frameType The frame type triggering the overhead increase -+ * @param increment The amount by which the overhead is increased -+ */ -+ protected void increaseOverheadCount(FrameType frameType, int increment) { -+ /* -+ * Three types of frame are susceptible to inefficient (and potentially malicious) use of small frames. These -+ * trigger an increase in overhead that is inversely proportional to size. The default threshold for all three -+ * potential areas for abuse (CONTINUATION, DATA, WINDOW_UPDATE) is 1024 bytes. Frames with sizes smaller than -+ * this will trigger an increase of threshold/size. -+ * -+ * The check for DATA and WINDOW_UPDATE frames takes an average over the last two frames to allow for client -+ * buffering schemes that can result in some small DATA payloads. -+ * -+ * The CONTINUATION and DATA frames checks are skipped for end of headers (CONTINUATION) and end of stream -+ * (DATA) as those frames may be small for legitimate reasons. -+ * -+ * RESET frames (received or sent) trigger an increase of overheadResetFactor. -+ * -+ * In all cases, the calling method determines the extent to which the overhead count is increased. -+ */ - updateOverheadCount(frameType, increment); - } - -@@ -1652,9 +1652,9 @@ class Http2UpgradeHandler extends AbstractStream implements InternalHttpUpgradeH - if (payloadSize < overheadThreshold) { - if (payloadSize == 0) { - // Avoid division by zero -- increaseOverheadCount(FrameType.HEADERS, overheadThreshold); -+ increaseOverheadCount(FrameType.CONTINUATION, overheadThreshold); - } else { -- increaseOverheadCount(FrameType.HEADERS, overheadThreshold / payloadSize); -+ increaseOverheadCount(FrameType.CONTINUATION, overheadThreshold / payloadSize); - } - } - } -diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml -index df1c90b7a7..0c1588a506 100644 ---- a/webapps/docs/changelog.xml -+++ b/webapps/docs/changelog.xml -@@ -111,6 +111,12 @@ - Ensure application configured welcome files override the defaults when - configuring an embedded web application programmatically. (markt) - -+ -+ Update the HTTP/2 overhead documentation - particularly the code -+ comments - to reflect the deprecation of the PRIORITY frame -+ and clarify that a stream reset always triggers an overhead increase. -+ (markt) -+ - - Allow the default servlet to set the content length when the content - length is known, no content has been written and a Writer -diff --git a/webapps/docs/config/http2.xml b/webapps/docs/config/http2.xml -index 0a0d98cb32..b2329a4fdb 100644 ---- a/webapps/docs/config/http2.xml -+++ b/webapps/docs/config/http2.xml -@@ -241,8 +241,9 @@ - -

The amount by which the overhead count (see - overheadCountFactor) will be increased for each reset -- frame received. If not specified, a default value of 50 will -- be used. A value of less than zero will be treated as zero.

-+ frame received or sent. If not specified, a default value of -+ 50 will be used. A value of less than zero will be treated as -+ zero.

-
- - diff --git a/9.0.107.tar.gz b/9.0.111.tar.gz similarity index 49% rename from 9.0.107.tar.gz rename to 9.0.111.tar.gz index 21a2c0e5f2e1dc401e29de589a8c262629f9b7af..3425ead36df866317c34c3788c4ac95cb74bbd36 100644 Binary files a/9.0.107.tar.gz and b/9.0.111.tar.gz differ diff --git a/tomcat.spec b/tomcat.spec index a1cad36a9b25dd19c78cfdd2b0bf4f2bb9024a93..50281e5017758ac5ed1eed664c9238215d1d6aa4 100644 --- a/tomcat.spec +++ b/tomcat.spec @@ -1,9 +1,9 @@ -%define anolis_release 2 +%define anolis_release 1 %global jspspec 2.3 %global major_version 9 %global minor_version 0 -%global micro_version 107 +%global micro_version 111 %global packdname tomcat-%{version} %global servletspec 4.0 %global elspec 3.0 @@ -53,7 +53,6 @@ Patch2: %{name}-build.patch Patch3: %{name}-%{major_version}.%{minor_version}-catalina-policy.patch Patch4: rhbz-1857043.patch Patch6: %{name}-%{major_version}.%{minor_version}-bnd-annotation.patch -Patch7: 7-bugfix-for-CVE-2025-48989.patch BuildArch: noarch @@ -521,6 +520,10 @@ fi %doc {NOTICE,RELEASE*} %changelog +* Thu Oct 30 2025 qizengtian - 1:9.0.111-1 +- Upgrade to 9.0.111 to fix CVE-2025-55752 +- Remove the unsed patch which has already been included in the new version + * Mon Oct 20 2025 tomcruiseqi - 1:9.0.107-2 - Fix CVE-2025-48989