<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Silo on SILO</title><link>https://silo.pgsty.com/tags/silo/</link><description>Recent content in Silo on SILO</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 02 Aug 2026 15:22:46 +0800</lastBuildDate><atom:link href="https://silo.pgsty.com/tags/silo/index.xml" rel="self" type="application/rss+xml"/><item><title>SILO 20260618 Released</title><link>https://silo.pgsty.com/blog/release/20260618/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20260618/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-06-18 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-06-18T00-00-00Z"&gt;RELEASE.2026-06-18T00-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This release is a security and dependency-maintenance update for the &lt;code&gt;pgsty/minio&lt;/code&gt; fork. It hardens LDAP STS throttling, completes S3 Select oversized-record enforcement, removes the obsolete &lt;code&gt;ReadMultiple&lt;/code&gt; internode storage-REST API, upgrades the Go build baseline to &lt;code&gt;1.26.4&lt;/code&gt;, and refreshes Go module dependencies to pick up additional third-party security fixes.&lt;/p&gt;
&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Known issue&lt;/strong&gt;: this release — like every earlier community release since &lt;code&gt;RELEASE.2025-12-03T12-00-00Z&lt;/code&gt; — carries a silent streaming-flush regression inherited from upstream that breaks &lt;code&gt;mc watch&lt;/code&gt; / bucket-notification listeners and S3 Select keep-alives. There is no workaround; the fix is merged on &lt;code&gt;master&lt;/code&gt; and ships in the next release. See &lt;a href="https://silo.pgsty.com/blog/security/security-note/"&gt;Security Note&lt;/a&gt; entry &lt;strong&gt;SN-2026-001&lt;/strong&gt; for the full analysis.&lt;/p&gt;</description></item><item><title>CVE-2026-32285: The jsonparser Advisory That Required No Patch</title><link>https://silo.pgsty.com/blog/security/cve-2026-32285/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-32285/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Closed without a code change&lt;br&gt;
&lt;strong&gt;GitHub issue:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/issues/26"&gt;pgsty/minio#26&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Security maintenance is not always a sequence of “find a vulnerability, then ship a patch.” The initial assessment of CVE-2026-32285 was that the repository might still carry a vulnerable &lt;code&gt;jsonparser&lt;/code&gt;; replacing the dependency or maintaining another fork was even considered. Checking the resolved module version and actual reachability changed the conclusion: the tree already used &lt;code&gt;v1.1.2&lt;/code&gt;, which contained the fix, and &lt;code&gt;govulncheck&lt;/code&gt; found no reachable vulnerable symbol.&lt;/p&gt;</description></item><item><title>SILO 20260417 Released</title><link>https://silo.pgsty.com/blog/release/20260417/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20260417/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-04-17 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This release focuses on security hardening and compatibility tightening. It bundles fixes across OIDC, LDAP STS, S3 Select, replication metadata handling, unsigned-trailer flows, the Snowball upload path, and multiple dependency- and Go toolchain-related security issues, while also incorporating the LDAP TLS regression fix and a cleanup of community-fork documentation.&lt;/p&gt;
&lt;h2 id="major-changes"&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tighten the identity-authentication flow: OIDC / WebIdentity now accepts only asymmetrically signed &lt;code&gt;ID Token&lt;/code&gt; values backed by the IdP &lt;code&gt;JWKS&lt;/code&gt;; symmetrically signed tokens such as &lt;code&gt;HS256&lt;/code&gt; are no longer accepted. LDAP STS also now hides the distinction between unknown-user and bad-password failures to reduce username-enumeration risk.&lt;/li&gt;
&lt;li&gt;Update LDAP STS rate limiting: limits now apply to both source IP and normalized username, and successful requests no longer consume quota incorrectly. By default MinIO now uses only the socket peer address as the source and no longer trusts &lt;code&gt;X-Forwarded-For&lt;/code&gt;, &lt;code&gt;X-Real-IP&lt;/code&gt;, or &lt;code&gt;Forwarded&lt;/code&gt;; to rate-limit by real client IP, configure &lt;code&gt;MINIO_IDENTITY_LDAP_STS_TRUSTED_PROXIES&lt;/code&gt; explicitly.&lt;/li&gt;
&lt;li&gt;Make upload and write paths stricter: presigned query parameters can no longer be combined with &lt;code&gt;unsigned-trailer&lt;/code&gt; &lt;code&gt;PUT&lt;/code&gt; or multipart uploads. Snowball auto-extract now also performs full signature validation on the &lt;code&gt;unsigned-trailer&lt;/code&gt; path and rejects anonymous or forged-signature requests.&lt;/li&gt;
&lt;li&gt;Prevent replication metadata spoofing: internal &lt;code&gt;X-Minio-Replication-*&lt;/code&gt; headers attached to ordinary &lt;code&gt;PUT&lt;/code&gt; / &lt;code&gt;COPY&lt;/code&gt; requests are now rejected or ignored, and only trusted replication flows may write the related internal metadata.&lt;/li&gt;
&lt;li&gt;Clarify S3 Select error semantics: oversized CSV and line-delimited JSON records now return &lt;code&gt;OverMaxRecordSize&lt;/code&gt; directly instead of the generic &lt;code&gt;InternalError&lt;/code&gt;; clients or alerting rules that depend on the old error code should be adjusted.&lt;/li&gt;
&lt;li&gt;Upgrade the runtime and dependency baseline: fix the regression where &lt;code&gt;ldaps://&lt;/code&gt; did not correctly apply TLS settings, replace &lt;code&gt;minio/pkg/v3&lt;/code&gt; with &lt;code&gt;pgsty/minio-pkg/v3&lt;/code&gt;, and pin several critical dependencies that are prone to breaking changes. The release also upgrades &lt;code&gt;go-jose&lt;/code&gt;, &lt;code&gt;go.opentelemetry.io&lt;/code&gt;, and Go &lt;code&gt;1.26.2&lt;/code&gt; to unify the build and release baseline.&lt;/li&gt;
&lt;li&gt;Refresh documentation and security guidance: update &lt;code&gt;SECURITY.md&lt;/code&gt;, &lt;code&gt;VULNERABILITY_REPORT.md&lt;/code&gt;, &lt;code&gt;docs/sts/ldap.md&lt;/code&gt;, and related documents, add a security advisory index, and switch upstream &lt;code&gt;minio/minio&lt;/code&gt; references in the security guidance over to &lt;code&gt;pgsty/minio&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fixed-cves"&gt;Fixed CVEs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories?query=CVE-2026-34986"&gt;CVE-2026-34986&lt;/a&gt;: upgrade &lt;code&gt;go-jose&lt;/code&gt; to &lt;code&gt;v4.1.4&lt;/code&gt; and fix known security issues in the JWT / JOSE dependency chain.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories/GHSA-hfvc-g4fc-pqhx"&gt;CVE-2026-39883&lt;/a&gt;: upgrade the &lt;code&gt;go.opentelemetry.io&lt;/code&gt; dependency stack to fix the PATH-hijacking risk.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories?query=CVE-2026-33322"&gt;CVE-2026-33322&lt;/a&gt;: restore the strict JWKS-only OIDC JWT verification path to block keyring injection and algorithm-confusion risk.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories?query=CVE-2026-33419"&gt;CVE-2026-33419&lt;/a&gt;: systematically harden LDAP STS authentication, rate limiting, source-address identification, and accounting logic across four follow-up fixes.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories?query=CVE-2026-34204"&gt;CVE-2026-34204&lt;/a&gt;: reject injection of &lt;code&gt;X-Minio-Replication-*&lt;/code&gt; metadata by untrusted requests to prevent objects from being written with invalid replication state.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories?query=CVE-2026-39414"&gt;CVE-2026-39414&lt;/a&gt;: reject oversized S3 Select records early to avoid continued buffering and parsing of abnormal inputs.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories/GHSA-hv4r-mvr4-25vw"&gt;GHSA-hv4r-mvr4-25vw&lt;/a&gt;: close the unsigned-trailer query-auth bypass.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/advisories/GHSA-9c4q-hq6p-c237"&gt;GHSA-9c4q-hq6p-c237&lt;/a&gt;: harden unsigned-trailer authentication and signature validation in Snowball auto-extract scenarios.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4947"&gt;CVE-2026-32280&lt;/a&gt;, &lt;a href="https://pkg.go.dev/vuln/GO-2026-4946"&gt;CVE-2026-32281&lt;/a&gt;, and &lt;a href="https://pkg.go.dev/vuln/GO-2026-4870"&gt;CVE-2026-32283&lt;/a&gt;: upgrade Go to &lt;code&gt;1.26.2&lt;/code&gt; and absorb the upstream toolchain and stdlib security fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-commits"&gt;Related Commits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/c878ca075678e943666ec2365afe95d992a0cc76"&gt;c878ca0&lt;/a&gt;: fix: pin deps with breaking changes and fix LDAP TLS regression (#15)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/e970ec5629068a1fc5938dddb4e3f1e70e1e2929"&gt;e970ec5&lt;/a&gt;: fix: upgrade go-jose to v4.1.4 to patch CVE-2026-34986&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/a2065105a0e1b67f44b537e9d246ace2acc6aec0"&gt;a206510&lt;/a&gt;: fix: CVE-2026-39883 upgrade go.opentelemetry.io&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/fd65f1199bac0317cc18fc9630dcee3f0c168024"&gt;fd65f11&lt;/a&gt;: merge: PR #18 upgrade go-jose to v4.1.4 for CVE-2026-34986&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/bc087e40a3a4feaa7d9817cfc621e79bed5ad84a"&gt;bc087e4&lt;/a&gt;: merge: PR #19 upgrade go.opentelemetry.io for CVE-2026-39883&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/f1f2239ef8f44de48f6730327643e454574cbcdd"&gt;f1f2239&lt;/a&gt;: fix: CVE-2026-33322 restore JWKS-only OIDC JWT verification&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/6619d0cd326b022dd34f7da4d637c5aca37bbd23"&gt;6619d0c&lt;/a&gt;: fix: CVE-2026-33419 harden LDAP STS auth&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/fcb8f242dee3394263e5b7a2cf02af87d34701f8"&gt;fcb8f24&lt;/a&gt;: fix: CVE-2026-34204 reject untrusted replication metadata&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/c5765dcbbe28b2fb001c30ef44e95ff9ca026ca9"&gt;c5765dc&lt;/a&gt;: fix: CVE-2026-39414 reject oversized S3 Select records&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/fa7c579bfbe2a98f2cb7d3ff1333d9393978fab1"&gt;fa7c579&lt;/a&gt;: fix: GHSA-hv4r-mvr4-25vw block unsigned-trailer query auth bypass&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/b50ab5835bc6d04a9f760bbcfcca21d9fdb22fa7"&gt;b50ab58&lt;/a&gt;: fix: GHSA-9c4q-hq6p-c237 harden Snowball unsigned-trailer auth&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/9a4b3cd92f8fff72d31c3e41d68d878f39253eaa"&gt;9a4b3cd&lt;/a&gt;: fix: CVE-2026-32280/CVE-2026-32281/CVE-2026-32283 upgrade Go to 1.26.2&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/c55b52caf183db40adb3fdb56cb8b0f0067a8dd1"&gt;c55b52c&lt;/a&gt;: fix: CVE-2026-33419 preserve LDAP STS rate limits on success&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/817a4570165b3073451b4b392a3aafcaafcdcea9"&gt;817a457&lt;/a&gt;: fix: CVE-2026-33419 harden LDAP STS rate-limit source IP&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/084a15461a03944e50b37987c9446d4c2f87f9b8"&gt;084a154&lt;/a&gt;: fix: CVE-2026-33419 tighten LDAP STS rate-limit accounting&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/16e34f900cf90b541561a450e2588332e17213b9"&gt;16e34f9&lt;/a&gt;: docs: refresh security guidance and fork references&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CVE-2026-33322: OIDC JWT Algorithm Confusion</title><link>https://silo.pgsty.com/blog/security/cve-2026-33322/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-33322/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released&lt;br&gt;
&lt;strong&gt;First containing release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Affected entry points:&lt;/strong&gt; &lt;code&gt;AssumeRoleWithWebIdentity&lt;/code&gt;, &lt;code&gt;AssumeRoleWithClientGrants&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;GitHub issue:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/issues/22"&gt;pgsty/minio#22&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The old implementation placed the OIDC client secret in the JWT verifier keyring while also accepting HMAC signing methods. An attacker who knew that client secret could therefore mint an HS-signed token and exchange it through STS for temporary credentials. The final fix restored asymmetric, JWKS-only verification. It deliberately broke HS256/384/512 compatibility instead of keeping an option that would reintroduce ambiguous trust semantics.&lt;/p&gt;</description></item><item><title>CVE-2026-33419: LDAP STS Enumeration and the Throttling Chain</title><link>https://silo.pgsty.com/blog/security/cve-2026-33419/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-33419/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released, followed by two rounds of corrections&lt;br&gt;
&lt;strong&gt;First containing release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Complete correction:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-06-18T00-00-00Z"&gt;RELEASE.2026-06-18T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub issue:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/issues/23"&gt;pgsty/minio#23&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The core vulnerability was straightforward: LDAP STS returned different results for “user does not exist” and “password is wrong,” creating a username oracle. The first fix unified the external authentication failure and added limits by source IP and username. Continued review then showed that success refunds, spoofable source headers, reservation accounting, and the shared username bucket could turn the security control itself into a new attack surface.&lt;/p&gt;</description></item><item><title>SILO 20260325 Released</title><link>https://silo.pgsty.com/blog/release/20260325/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20260325/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-03-25 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-03-25T00-00-00Z"&gt;RELEASE.2026-03-25T00-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a maintenance release centered on packaging, stability, and security disclosure. It improves the shipping artifacts, fixes an LDAP TLS regression, and explicitly documents the secure dependency set carried by the release.&lt;/p&gt;
&lt;h2 id="major-changes"&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bundle &lt;code&gt;mcli/mc&lt;/code&gt; into the Docker image and add checksum verification for a better out-of-the-box image experience.&lt;/li&gt;
&lt;li&gt;Fix the LDAP TLS regression affecting &lt;code&gt;ldaps://&lt;/code&gt; deployments so TLS settings are correctly honored.&lt;/li&gt;
&lt;li&gt;Remove inherited upstream CI/CD workflows that are no longer used in the community-maintained fork.&lt;/li&gt;
&lt;li&gt;Pin several critical dependencies to avoid further fallout from upstream breaking changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fixed-cves"&gt;Fixed CVEs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4394"&gt;CVE-2026-24051&lt;/a&gt;: the release notes explicitly call out &lt;code&gt;go.opentelemetry.io/otel/sdk v1.42.0&lt;/code&gt;, which avoids the macOS PATH-hijacking arbitrary code execution issue.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2025-4173"&gt;CVE-2025-10543&lt;/a&gt;: the release notes explicitly ship &lt;code&gt;github.com/eclipse/paho.mqtt.golang v1.5.1&lt;/code&gt;, fixing incorrect MQTT packet encoding for oversized UTF-8 strings.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2025-4134"&gt;CVE-2025-58181&lt;/a&gt;: the release notes explicitly ship &lt;code&gt;golang.org/x/crypto v0.49.0&lt;/code&gt;, fixing unbounded memory consumption in &lt;code&gt;ssh&lt;/code&gt; GSSAPI authentication handling.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-commits"&gt;Related Commits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/f2f9a40dce9597d5d1fa758b3316d41a86e73cff"&gt;f2f9a40&lt;/a&gt;: add mcli/mc from pgsty/mc to Docker image&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/ce1c537eb1dd6c4efa1cf75cf5df0e2c489c947a"&gt;ce1c537&lt;/a&gt;: fix: pin deps with breaking changes and fix LDAP TLS regression (#15)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/ee55e5391a5d5e4bd46d555a11b2215eb6ed836e"&gt;ee55e53&lt;/a&gt;: remove upstream CI/CD workflows inherited from minio/minio&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CVE-2026-34204: Replication Metadata Injection</title><link>https://silo.pgsty.com/blog/security/cve-2026-34204/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-34204/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released&lt;br&gt;
&lt;strong&gt;First containing release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub issue:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/issues/24"&gt;pgsty/minio#24&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ordinary &lt;code&gt;PUT&lt;/code&gt; and &lt;code&gt;COPY&lt;/code&gt; requests could smuggle &lt;code&gt;X-Minio-Replication-*&lt;/code&gt; headers into internal &lt;code&gt;X-Minio-Internal-*&lt;/code&gt; SSE metadata, creating objects whose replication state did not match the authorized path and could even make them unreadable. The final fix stopped accepting replication-only metadata by default, restored it only in a trusted flow authorized for &lt;code&gt;ReplicateObjectAction&lt;/code&gt;, and sanitized &lt;code&gt;CopyObject&lt;/code&gt; before any header consumer ran.&lt;/p&gt;
&lt;h2 id="threat-model"&gt;Threat model&lt;/h2&gt;
&lt;p&gt;An attacker needed only ordinary object-write permission, not internode credentials. The input came entirely from client-controlled &lt;code&gt;X-Minio-Replication-*&lt;/code&gt; headers, but metadata extraction converted it into internal replication or SSE state.&lt;/p&gt;</description></item><item><title>SILO 20260321 Released</title><link>https://silo.pgsty.com/blog/release/20260321/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20260321/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-03-21 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-03-21T00-00-00Z"&gt;RELEASE.2026-03-21T00-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This maintenance release is built around the Go 1.26.1 upgrade and a broad dependency refresh. Beyond stricter compiler and linter compatibility fixes, it also delivers the most substantial security dependency refresh in the current release line.&lt;/p&gt;
&lt;h2 id="major-changes"&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade the build environment from Go &lt;code&gt;1.26.0&lt;/code&gt; to Go &lt;code&gt;1.26.1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Refresh direct and indirect dependencies to converge on the newer toolchain.&lt;/li&gt;
&lt;li&gt;Fix linter and test issues exposed by the stricter Go 1.26.1 checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fixed-cves"&gt;Fixed CVEs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4599"&gt;CVE-2026-27137&lt;/a&gt;: Go stdlib &lt;code&gt;1.26.0&lt;/code&gt; -&amp;gt; &lt;code&gt;1.26.1&lt;/code&gt; fixes incomplete email-constraint enforcement in &lt;code&gt;crypto/x509&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4600"&gt;CVE-2026-27138&lt;/a&gt;: Go stdlib &lt;code&gt;1.26.0&lt;/code&gt; -&amp;gt; &lt;code&gt;1.26.1&lt;/code&gt; fixes a &lt;code&gt;crypto/x509&lt;/code&gt; panic triggered by malformed certificates.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4601"&gt;CVE-2026-25679&lt;/a&gt;: Go stdlib &lt;code&gt;1.26.0&lt;/code&gt; -&amp;gt; &lt;code&gt;1.26.1&lt;/code&gt; fixes insufficient validation of IPv6 host literals in &lt;code&gt;net/url&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4602"&gt;CVE-2026-27139&lt;/a&gt;: Go stdlib &lt;code&gt;1.26.0&lt;/code&gt; -&amp;gt; &lt;code&gt;1.26.1&lt;/code&gt; fixes &lt;code&gt;FileInfo&lt;/code&gt; metadata escaping the &lt;code&gt;Root&lt;/code&gt; boundary in &lt;code&gt;os&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4603"&gt;CVE-2026-27142&lt;/a&gt;: Go stdlib &lt;code&gt;1.26.0&lt;/code&gt; -&amp;gt; &lt;code&gt;1.26.1&lt;/code&gt; fixes missing URL escaping in &lt;code&gt;html/template&lt;/code&gt; for &lt;code&gt;meta refresh&lt;/code&gt; content.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4503"&gt;CVE-2026-26958&lt;/a&gt;: &lt;code&gt;filippo.io/edwards25519&lt;/code&gt; &lt;code&gt;v1.1.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v1.2.0&lt;/code&gt; fixes incorrect or undefined &lt;code&gt;MultiScalarMult&lt;/code&gt; behavior.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2025-4173"&gt;CVE-2025-10543&lt;/a&gt;: &lt;code&gt;github.com/eclipse/paho.mqtt.golang&lt;/code&gt; &lt;code&gt;v1.5.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v1.5.1&lt;/code&gt; fixes incorrect MQTT packet encoding for oversized UTF-8 strings.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4394"&gt;CVE-2026-24051&lt;/a&gt;: &lt;code&gt;go.opentelemetry.io/otel/sdk&lt;/code&gt; &lt;code&gt;v1.38.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v1.42.0&lt;/code&gt; fixes the macOS PATH-hijacking arbitrary code execution issue.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4762"&gt;CVE-2026-33186&lt;/a&gt;: &lt;code&gt;google.golang.org/grpc&lt;/code&gt; &lt;code&gt;v1.77.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v1.79.3&lt;/code&gt; fixes authorization bypass caused by a missing leading slash in the HTTP/2 &lt;code&gt;:path&lt;/code&gt; pseudo-header.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-commits"&gt;Related Commits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/5abd9a80f66f6fe2812d2eded18961a65712eb9e"&gt;5abd9a8&lt;/a&gt;: bump golang to 1.26.1 and update deps&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/377fc616d9c5944d9d0aff081089d2d0c4ebb12c"&gt;377fc61&lt;/a&gt;: fix: satisfy stricter Go 1.26.1 linter checks&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CVE-2026-39414: Oversized S3 Select Records and a SIMD Bypass</title><link>https://silo.pgsty.com/blog/security/cve-2026-39414/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-39414/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released; the second-round fix was completed in June&lt;br&gt;
&lt;strong&gt;Initial fix release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Complete fix release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-06-18T00-00-00Z"&gt;RELEASE.2026-06-18T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub issue:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/issues/25"&gt;pgsty/minio#25&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The first fix in April reused the existing 1 MiB &lt;code&gt;maxCharsPerRecord&lt;/code&gt; limit for both CSV and ordinary JSON Lines. This prevented unbounded buffering while waiting for a delimiter and returned the explicit &lt;code&gt;OverMaxRecordSize&lt;/code&gt; error to clients. A June review then found that CPUs with SIMD support took a different &lt;code&gt;simdjson&lt;/code&gt; fast path that bypassed the limit completely.&lt;/p&gt;</description></item><item><title>SILO 20260314 Released</title><link>https://silo.pgsty.com/blog/release/20260314/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20260314/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-03-14 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-03-14T12-00-00Z"&gt;RELEASE.2026-03-14T12-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This release switches the project to the community-maintained Console fork and performs a sizeable dependency refresh to establish the base for the later Go 1.26.x maintenance releases.&lt;/p&gt;
&lt;h2 id="major-changes"&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Switch to the community-maintained &lt;code&gt;georgmangold/console v1.9.1&lt;/code&gt; fork in place of the unmaintainable upstream Console dependency.&lt;/li&gt;
&lt;li&gt;Refresh a large portion of the direct and indirect dependency graph so the new Console and toolchain combination builds cleanly.&lt;/li&gt;
&lt;li&gt;Fix the &lt;code&gt;go vet&lt;/code&gt; format directive issue in &lt;code&gt;grid_test.go&lt;/code&gt; and adjust tests for the HTTP behavior changes in Go 1.26.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fixed-cves"&gt;Fixed CVEs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2025-4116"&gt;CVE-2025-47913&lt;/a&gt;: &lt;code&gt;golang.org/x/crypto&lt;/code&gt; &lt;code&gt;v0.37.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v0.46.0&lt;/code&gt; fixes a panic in &lt;code&gt;ssh/agent&lt;/code&gt; when handling malformed responses.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2025-4134"&gt;CVE-2025-58181&lt;/a&gt;: &lt;code&gt;golang.org/x/crypto&lt;/code&gt; &lt;code&gt;v0.37.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v0.46.0&lt;/code&gt; fixes unbounded memory consumption in &lt;code&gt;ssh&lt;/code&gt; GSSAPI authentication parsing.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2025-4135"&gt;CVE-2025-47914&lt;/a&gt;: &lt;code&gt;golang.org/x/crypto&lt;/code&gt; &lt;code&gt;v0.37.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v0.46.0&lt;/code&gt; fixes a panic in &lt;code&gt;ssh/agent&lt;/code&gt; caused by malformed identity messages.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4440"&gt;CVE-2025-47911&lt;/a&gt;: &lt;code&gt;golang.org/x/net&lt;/code&gt; &lt;code&gt;v0.39.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v0.48.0&lt;/code&gt; fixes quadratic parsing complexity in &lt;code&gt;html.Parse&lt;/code&gt; for crafted inputs.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pkg.go.dev/vuln/GO-2026-4441"&gt;CVE-2025-58190&lt;/a&gt;: &lt;code&gt;golang.org/x/net&lt;/code&gt; &lt;code&gt;v0.39.0&lt;/code&gt; -&amp;gt; &lt;code&gt;v0.48.0&lt;/code&gt; fixes an infinite parsing loop in &lt;code&gt;golang.org/x/net/html&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-commits"&gt;Related Commits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/68521b37f2697c79b7fe14676eaf687864a1cf26"&gt;68521b3&lt;/a&gt;: add github ci/cd pipeline&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/00f3cf74fc4319f3d34c4e47c87ad39386318755"&gt;00f3cf7&lt;/a&gt;: RELEASE.2026-03-14T12-00-00Z with go 1.26.0&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CVE-2026-40344: Snowball Auto-Extract Authentication Bypass</title><link>https://silo.pgsty.com/blog/security/cve-2026-40344/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-40344/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released&lt;br&gt;
&lt;strong&gt;First containing release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub advisory:&lt;/strong&gt; &lt;a href="https://github.com/advisories/GHSA-9c4q-hq6p-c237"&gt;GHSA-9c4q-hq6p-c237&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Snowball&amp;rsquo;s &lt;code&gt;PutObjectExtractHandler&lt;/code&gt; omitted the streaming unsigned-trailer authentication case. A tar stream with a forged signature could enter &lt;code&gt;untar()&lt;/code&gt; before authentication completed, and one request could fan out into many object writes. The final fix initialized the correct reader, handled the decoded length, and completed SigV4 verification before any tar byte reached the extractor.&lt;/p&gt;
&lt;h2 id="cve-number"&gt;Why the identifier changed&lt;/h2&gt;
&lt;p&gt;The official CVE had not been assigned when the fix was written, so the commit subject used the temporary identifier &lt;code&gt;fake CVE-2026-40028&lt;/code&gt;. The final identifier is &lt;strong&gt;CVE-2026-40344&lt;/strong&gt;. The historical commit was not rewritten; the advisory and this article use the official number.&lt;/p&gt;</description></item><item><title>SILO 20260214 Released</title><link>https://silo.pgsty.com/blog/release/20260214/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20260214/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2026-02-14 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-02-14T12-00-00Z"&gt;RELEASE.2026-02-14T12-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This early infrastructure-focused community release restores the embedded Console, introduces GitHub CI/CD, and lifts the Go baseline to 1.26.0, which also absorbs a batch of security fixes from the older toolchain generation.&lt;/p&gt;
&lt;h2 id="major-changes"&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Restore the embedded Console and refresh the README to clarify the community fork position.&lt;/li&gt;
&lt;li&gt;Add GitHub CI/CD workflows as the base for automated builds and multi-platform delivery.&lt;/li&gt;
&lt;li&gt;Add quick links for docs, Docker, the GitHub repository, and installation through the &lt;code&gt;pig&lt;/code&gt; package manager.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fixed-cves"&gt;Fixed CVEs&lt;/h2&gt;
&lt;p&gt;These issues were absorbed as part of the Go &lt;code&gt;1.25.5&lt;/code&gt; -&amp;gt; &lt;code&gt;1.26.0&lt;/code&gt; upgrade:&lt;/p&gt;</description></item><item><title>CVE-2026-41145: Unsigned-Trailer Query Authentication Bypass</title><link>https://silo.pgsty.com/blog/security/cve-2026-41145/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-41145/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released&lt;br&gt;
&lt;strong&gt;First containing release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z"&gt;RELEASE.2026-04-17T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub advisory:&lt;/strong&gt; &lt;a href="https://github.com/advisories/GHSA-hv4r-mvr4-25vw"&gt;GHSA-hv4r-mvr4-25vw&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Query-string SigV4 credentials could enter a &lt;code&gt;STREAMING-UNSIGNED-PAYLOAD-TRAILER&lt;/code&gt; data flow, while the old code verified the signature only when an &lt;code&gt;Authorization&lt;/code&gt; header was present. A request carrying a valid access-key identifier could therefore complete a write without a correct signature.&lt;/p&gt;
&lt;p&gt;The final fix moved presigned rejection and SigV4 verification into &lt;code&gt;newUnsignedV4ChunkedReader()&lt;/code&gt;, making every caller consuming that stream share one authentication boundary.&lt;/p&gt;
&lt;h2 id="cve-number"&gt;Identifier note&lt;/h2&gt;
&lt;p&gt;The official CVE had not been assigned when the patch was written, so its commit subject used &lt;code&gt;fake CVE-2026-40027&lt;/code&gt;. The final identifier is &lt;strong&gt;CVE-2026-41145&lt;/strong&gt;. The historical commit remains unchanged; public material uses the official identifier.&lt;/p&gt;</description></item><item><title>SILO 20251203 Released</title><link>https://silo.pgsty.com/blog/release/20251203/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/release/20251203/</guid><description>&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; 2025-12-15 · &lt;strong&gt;Version:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2025-12-03T12-00-00Z"&gt;RELEASE.2025-12-03T12-00-00Z&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the earliest traceable community release. Its purpose is to establish the community packaging and distribution baseline rather than to deliver incremental fixes over an earlier community release.&lt;/p&gt;
&lt;h2 id="major-changes"&gt;Major Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build the community packaging flow around &lt;code&gt;minio/pkger&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Choose a maintenance-mode upstream MinIO baseline as the starting point for the community-maintained fork.&lt;/li&gt;
&lt;li&gt;Produce the first &lt;code&gt;apk&lt;/code&gt;, &lt;code&gt;deb&lt;/code&gt;, and &lt;code&gt;rpm&lt;/code&gt; artifacts for ongoing community releases.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="fixed-cves"&gt;Fixed CVEs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This is the first community release. The GitHub Release does not provide a delta-style security-fix list against an earlier community version, and this page does not attempt to reconstruct the full historical CVE delta against the upstream maintenance baseline.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-commits"&gt;Related Commits&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/minio/commit/d4cd4b433797e1cdcd2e46cc72df45b0897bdc0a"&gt;d4cd4b4&lt;/a&gt;: RELEASE.2025-12-03T12-00-00Z with go 1.25.5&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>CVE-2026-42600: ReadMultiple Storage-REST Path Traversal</title><link>https://silo.pgsty.com/blog/security/cve-2026-42600/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://silo.pgsty.com/blog/security/cve-2026-42600/</guid><description>&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Released&lt;br&gt;
&lt;strong&gt;First containing release:&lt;/strong&gt; &lt;a href="https://github.com/pgsty/minio/releases/tag/RELEASE.2026-06-18T00-00-00Z"&gt;RELEASE.2026-06-18T00-00-00Z&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub advisory:&lt;/strong&gt; &lt;a href="https://github.com/advisories/GHSA-xh8f-g2qw-gcm7"&gt;GHSA-xh8f-g2qw-gcm7&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Affected scope:&lt;/strong&gt; Distributed erasure only; cluster-root / internode JWT required&lt;/p&gt;
&lt;p&gt;The msgpack body of &lt;code&gt;/rmpl&lt;/code&gt; carried &lt;code&gt;Bucket&lt;/code&gt;, &lt;code&gt;Prefix&lt;/code&gt;, and &lt;code&gt;Files&lt;/code&gt;. The old code joined those values into filesystem paths without a containment check. The initial fix implemented full preflight validation. Continued call-chain review then found that this API had had no production caller since 2024. The final solution changed from “retain and harden” to removing the route, handler, client, interface, and generated code.&lt;/p&gt;</description></item></channel></rss>