Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-CC: Pierre Gruet <p...@debian.org>

(Please provide enough information to help the release team
to judge the request efficiently. E.g. by filling in the
sections below.)

[Reason]
CVE-2024-47072: stack overflow

[ Impact ]
Remote DoS is likely possible

[ Tests ]
Manual test test does not backport

[ Risks ]
Code is simple.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ Changes ]

 * Team upload
 * Fix CVE-2024-47072: XStream is vulnerable to a
   Denial of Service attack due to stack overflow
   from a manipulated binary input stream.
   (Closes: #1087274)

[ Other info ]
pgt will likely review
diff -Nru libxstream-java-1.4.20/debian/changelog libxstream-java-1.4.20/debian/changelog
--- libxstream-java-1.4.20/debian/changelog	2023-01-11 12:15:53.000000000 +0000
+++ libxstream-java-1.4.20/debian/changelog	2024-12-22 10:12:11.000000000 +0000
@@ -1,3 +1,13 @@
+libxstream-java (1.4.20-1+deb12u1) bookworm; urgency=medium
+
+  * Team upload
+  * Fix CVE-2024-47072: XStream is vulnerable to a
+    Denial of Service attack due to stack overflow
+    from a manipulated binary input stream.
+    (Closes: #1087274)
+
+ -- Bastien Roucari??s <ro...@debian.org>  Sun, 22 Dec 2024 10:12:11 +0000
+
 libxstream-java (1.4.20-1) unstable; urgency=medium
 
   * Team upload.
diff -Nru libxstream-java-1.4.20/debian/patches/0004-CVE-2024-47072.patch libxstream-java-1.4.20/debian/patches/0004-CVE-2024-47072.patch
--- libxstream-java-1.4.20/debian/patches/0004-CVE-2024-47072.patch	1970-01-01 00:00:00.000000000 +0000
+++ libxstream-java-1.4.20/debian/patches/0004-CVE-2024-47072.patch	2024-12-22 10:10:35.000000000 +0000
@@ -0,0 +1,61 @@
+From: joehni <joerg.schai...@gmx.de>
+Date: Wed, 18 Sep 2024 20:19:13 +0200
+Subject: CVE-2024-47072
+
+This vulnerability may allow a remote attacker to terminate the application
+with a stack overflow error resulting in a denial of service only
+by manipulating the processed input stream when XStream is configured
+to use the BinaryStreamDrive
+
+origin: backport, https://github.com/x-stream/xstream/commit/fdd9f7d3de0d7ccf2f9979bcd09fbf3e6a0c881a
+bug: https://github.com/x-stream/xstream/security/advisories/GHSA-hfq9-hggm-c56q
+---
+ .../xstream/io/binary/BinaryStreamReader.java          | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/xstream/src/java/com/thoughtworks/xstream/io/binary/BinaryStreamReader.java b/xstream/src/java/com/thoughtworks/xstream/io/binary/BinaryStreamReader.java
+index 2839651..cd870cd 100644
+--- a/xstream/src/java/com/thoughtworks/xstream/io/binary/BinaryStreamReader.java
++++ b/xstream/src/java/com/thoughtworks/xstream/io/binary/BinaryStreamReader.java
+@@ -1,6 +1,6 @@
+ /*
+  * Copyright (C) 2006 Joe Walnes.
+- * Copyright (C) 2006, 2007, 2011, 2013 XStream Committers.
++ * Copyright (C) 2006, 2007, 2011, 2013, 2024 XStream Committers.
+  * All rights reserved.
+  *
+  * The software in this package is published under the terms of the BSD
+@@ -15,6 +15,7 @@ import com.thoughtworks.xstream.converters.ErrorWriter;
+ import com.thoughtworks.xstream.io.ExtendedHierarchicalStreamReader;
+ import com.thoughtworks.xstream.io.HierarchicalStreamReader;
+ import com.thoughtworks.xstream.io.StreamException;
++import com.thoughtworks.xstream.security.InputManipulationException;
+ 
+ import java.io.DataInputStream;
+ import java.io.IOException;
+@@ -150,15 +151,20 @@ public class BinaryStreamReader implements ExtendedHierarchicalStreamReader {
+     private Token readToken() {
+         if (pushback == null) {
+             try {
+-                Token token = tokenFormatter.read(in);
+-                switch (token.getType()) {
++                boolean mapping = false;
++                do {
++                    final Token token = tokenFormatter.read(in);
++                    switch (token.getType()) {
+                     case Token.TYPE_MAP_ID_TO_VALUE:
+                         idRegistry.put(token.getId(), token.getValue());
+-                        return readToken(); // Next one please.
++                        mapping ^= true;
++                        continue; // Next one please.
+                     default:
+                         return token;
+-                }
+-            } catch (IOException e) {
++                    }
++                } while (mapping);
++                throw new InputManipulationException("Binary stream will never have two mapping tokens in sequence");
++            } catch (final IOException e) {
+                 throw new StreamException(e);
+             }
+         } else {
diff -Nru libxstream-java-1.4.20/debian/patches/series libxstream-java-1.4.20/debian/patches/series
--- libxstream-java-1.4.20/debian/patches/series	2023-01-11 12:15:53.000000000 +0000
+++ libxstream-java-1.4.20/debian/patches/series	2024-12-22 10:10:35.000000000 +0000
@@ -1,3 +1,4 @@
 01-java7-compatibility.patch
 02-disable-beastax-driver.patch
 no-mxparser.patch
+0004-CVE-2024-47072.patch

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to