{"id":81080,"date":"2026-06-25T22:11:19","date_gmt":"2026-06-25T18:41:19","guid":{"rendered":"https:\/\/afaghhosting.net\/blog\/cve-2026-54917-seaweedfs-path-traversal-in-the-s3-and-iceberg-rest-gateways-allows-cross-bucket-access\/"},"modified":"2026-06-25T22:11:19","modified_gmt":"2026-06-25T18:41:19","slug":"cve-2026-54917-seaweedfs-path-traversal-in-the-s3-and-iceberg-rest-gateways-allows-cross-bucket-access","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/cve-2026-54917-seaweedfs-path-traversal-in-the-s3-and-iceberg-rest-gateways-allows-cross-bucket-access\/","title":{"rendered":"CVE-2026-54917 &#8211; SeaweedFS: Path traversal in the S3 and Iceberg REST gateways allows cross-bucket access"},"content":{"rendered":"<p>CVE ID :CVE-2026-54917<\/p>\n<p>  Published : June 25, 2026, 6:41 p.m. | 1\u00a0hour, 3\u00a0minutes ago<\/p>\n<p>  Description :SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables. Prior to 4.30, the S3 API gateway and the Iceberg REST catalog gateway construct their routers with mux.NewRouter().SkipClean(true). With path cleaning disabled, a .. segment inside the URL survives routing, so a request such as `GET \/bucket-A\/..\/evil-bucket\/key`, is matched as bucket=bucket-A, object=..\/evil-bucket\/key. The captured object key is then joined into a filer path with util.JoinPath (S3) \/ path.Join (Iceberg), which collapse the .. server-side, so the actual read or write lands in evil-bucket. This vulnerability is fixed in 4.30.<\/p>\n<p>  Severity: 0.0 | NA<\/p>\n<p>  Visit the link for more details, such as CVSS details, affected products, timeline, and more&#8230;\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CVE ID :CVE-2026-54917 Published : June 25, 2026, 6:41 p.m. | 1\u00a0hour, 3\u00a0minutes ago Description :SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables. Prior to 4.30, the S3 API gateway and the Iceberg REST catalog gateway construct their routers with mux.NewRouter().SkipClean(true). With path cleaning disabled, a .. segment &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-81080","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/81080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=81080"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/81080\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=81080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=81080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=81080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}