CVE-2025-59952
Description
MinIO Java SDK is a Simple Storage Service (aka S3) client to perform bucket and object operations to any Amazon S3 compatible object storage service. In minio-java versions prior to 8.6.0, XML tag values containing references to system properties or environment variables were automatically substituted with their actual values during processing. This unintended behavior could lead to the exposure of sensitive information, including credentials, file paths, or system configuration details, if such references were present in XML content from untrusted sources. This is fixed in version 8.6.0.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
io.minio:minioMaven | < 8.6.0 | 8.6.0 |
Affected products
1- Range: 0.2.1, 0.2.2, 0.2.3, …
Patches
2f6cfc76769feRelease version 8.6.0
1 file changed · +5 −5
README.md+5 −5 modified@@ -12,19 +12,19 @@ Java 1.8 or above. <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> - <version>8.5.17</version> + <version>8.6.0</version> </dependency> ``` ## Gradle usage ``` dependencies { - implementation("io.minio:minio:8.5.17") + implementation("io.minio:minio:8.6.0") } ``` ## JAR download -The latest JAR can be downloaded from [here](https://repo1.maven.org/maven2/io/minio/minio/8.5.17/) +The latest JAR can be downloaded from [here](https://repo1.maven.org/maven2/io/minio/minio/8.6.0/) ## Quick Start Example - File Uploader This example program connects to an object storage server, makes a bucket on the server and then uploads a file to the bucket. @@ -92,12 +92,12 @@ public class FileUploader { #### Compile FileUploader ```sh -$ javac -cp minio-8.5.17-all.jar FileUploader.java +$ javac -cp minio-8.6.0-all.jar FileUploader.java ``` #### Run FileUploader ```sh -$ java -cp minio-8.5.17-all.jar:. FileUploader +$ java -cp minio-8.6.0-all.jar:. FileUploader '/home/user/Photos/asiaphotos.zip' is successfully uploaded as object 'asiaphotos-2015.zip' to bucket 'asiatrip'. $ mc ls play/asiatrip/
f7a98d06b25exml: disable property/environment variable substitution (#1667)
1 file changed · +13 −4
api/src/main/java/io/minio/Xml.java+13 −4 modified@@ -24,17 +24,26 @@ import org.simpleframework.xml.Serializer; import org.simpleframework.xml.convert.AnnotationStrategy; import org.simpleframework.xml.core.Persister; +import org.simpleframework.xml.filter.Filter; import org.simpleframework.xml.stream.Format; /** XML marshaller and unmarshaller. */ public class Xml { + private static final Filter noopFilter = + new Filter() { + @Override + public String replace(String name) { + return null; + } + }; + /** * This marshal method will traverse the provided object checking for field annotations in order * to compose the XML data. */ public static String marshal(Object source) throws XmlParserException { try { - Serializer serializer = new Persister(new AnnotationStrategy(), new Format(0)); + Serializer serializer = new Persister(new AnnotationStrategy(), noopFilter, new Format(0)); StringWriter writer = new StringWriter(); serializer.write(source, writer); return writer.toString(); @@ -49,7 +58,7 @@ public static String marshal(Object source) throws XmlParserException { */ public static <T> T unmarshal(Class<? extends T> type, Reader source) throws XmlParserException { try { - Serializer serializer = new Persister(new AnnotationStrategy()); + Serializer serializer = new Persister(new AnnotationStrategy(), noopFilter); return serializer.read(type, source); } catch (Exception e) { throw new XmlParserException(e); @@ -62,7 +71,7 @@ public static <T> T unmarshal(Class<? extends T> type, Reader source) throws Xml */ public static <T> T unmarshal(Class<? extends T> type, String source) throws XmlParserException { try { - Serializer serializer = new Persister(new AnnotationStrategy()); + Serializer serializer = new Persister(new AnnotationStrategy(), noopFilter); return serializer.read(type, new StringReader(source)); } catch (Exception e) { throw new XmlParserException(e); @@ -75,7 +84,7 @@ public static <T> T unmarshal(Class<? extends T> type, String source) throws Xml */ public static boolean validate(Class type, String source) throws XmlParserException { try { - Serializer serializer = new Persister(new AnnotationStrategy()); + Serializer serializer = new Persister(new AnnotationStrategy(), noopFilter); return serializer.validate(type, source); } catch (Exception e) { throw new XmlParserException(e);
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-h7rh-xfpj-hpcmghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-59952ghsaADVISORY
- github.com/minio/minio-java/commit/f7a98d06b25e5464bdd4811b044e25ff9101d37fnvdWEB
- github.com/minio/minio-java/releases/tag/8.6.0nvdWEB
- github.com/minio/minio-java/security/advisories/GHSA-h7rh-xfpj-hpcmnvdWEB
News mentions
0No linked articles in our index yet.