Releases · GoogleCloudPlatform/gcsfuse · GitHub
Skip to content

Releases: GoogleCloudPlatform/gcsfuse

Gcsfuse v3.8.4

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 02 Sep 17:10
7b6a6f6

Bug fixes

  • Rapid Bucket Startup Optimization: Accelerated startup for Rapid buckets by skipping redundant DirectPath connectivity checks [PR#5027]

Gcsfuse v2.5.5

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 28 Aug 09:55
37ffccc
build(deps): upgrade golang and packages for CVE fixes (#5051)

* build(deps): upgrade golang and packages for CVE fixes

Gcsfuse v3.11.3

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 27 Aug 14:00
25740dc

Bug fixes & Improvements:

  • Stat Cache Bug Fix: Addressed a bug where windowed listing operations incorrectly added negative entries to the stat cache in rare scenarios, resulting in erroneous ENOENT (File Not Found) responses for implicit directories [PR#5025].
  • Mount Optimization: Disabled internal Go SDK retries for DirectPath connectivity verification to prevent mounting from getting stalled during transient network issues[PR#4993].
  • Rapid Bucket Startup Optimization: Accelerated startup for Rapid buckets by skipping redundant DirectPath connectivity checks [PR#5027]

Dependency Upgrades / CVE fixes:

 

CVE CVE Description
CVE-2026-39830 Client can cause server deadlock on unexpected responses in golang.org/x/crypto/ssh
CVE-2026-39831 Bypass of FIDO/U2F security keys physical user presence interaction in golang.org/x/crypto/ssh
CVE-2026-39832 Agent constraints dropped when forwarding keys in golang.org/x/crypto/ssh/agent
CVE-2026-39833 Key constraints not enforced in golang.org/x/crypto/ssh/agent
CVE-2026-39834 Infinite loop on large channel writes in golang.org/x/crypto/ssh
CVE-2026-39821 Failure to reject ASCII-only Punycode-encoded labels in golang.org/x/net/idna
CVE-2026-42508 Auth bypass via unenforced revoked status in golang.org/x/crypto/ssh/knownhosts
CVE-2026-42499 Quadratic string concatenation in consumePhrase in net/mail
CVE-2026-33814 Infinite loop in HTTP/2 transport when given bad SETTINGS_MAX_FRAME_SIZE in net/http/internal/http2 and golang.org/x/net

Gcsfuse v2.11.6

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 26 Aug 12:18
d6d3665
build(deps): upgrade Go to 1.26.7 and dependencies for CVE remediatio…

Gcsfuse v3.2.8

Choose a tag to compare

Several CVEs were fixed:

 

Dependency CVE Summary
Go stdlib (1.26.3 → 1.26.7) CVE-2026-27145 Inefficient candidate hostname parsing in crypto/x509
Go stdlib (1.26.3 → 1.26.7) CVE-2026-33818 Enforce maximum recursion depth in encoding/asn1
Go stdlib (1.26.3 → 1.26.7) CVE-2026-39822 Root escape via symlink plus trailing slash in os
Go stdlib (1.26.3 → 1.26.7) CVE-2026-42504 Quadratic complexity in WordDecoder.DecodeHeader in mime
Go stdlib (1.26.3 → 1.26.7) CVE-2026-42505 Invoking Encrypted Client Hello privacy leak in crypto/tls
Go stdlib (1.26.3 → 1.26.7) CVE-2026-42507 Arbitrary inputs are included in errors without any escaping in net/textproto
Go stdlib (1.26.3 → 1.26.7) CVE-2026-56853 Apply ReadHeaderTimeout when doing unencrypted HTTP/2 check in net/http
Go stdlib (1.26.3 → 1.26.7) CVE-2026-56858 Fix JavaScript regex context tracking in html/template
Go stdlib (1.26.3 → 1.26.7) CVE-2026-56859 Add recursion depth guard during decode in encoding/xml
Go stdlib (1.26.3 → 1.26.7) CVE-2026-56860 Avoid quadratic complexity in resolvePath in net/url
Go stdlib (1.26.3 → 1.26.7) CVE-2026-56862 Limit handshake messages accepted post-handshake in crypto/tls
go.opentelemetry.io/otel (v1.43.0 → v1.45.0) CVE-2026-41178 Baggage parsing no longer caps raw header length
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39827 Invoking memory leak when rejecting channels can lead to DoS in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39828 Invoking bypass of certificate restrictions in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39829 Invoking pathological RSA/DSA parameters may cause DoS in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39830 Invoking client can cause server deadlock on unexpected responses in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39831 Invoking bypass of FIDO/U2F security keys physical interaction in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39832 Invoking agent constraints dropped when forwarding keys in ssh/agent
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39833 Invoking key constraints not enforced in ssh/agent
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39834 Invoking infinite loop on large channel writes in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-39835 Invoking server panic during CheckHostKey/Authenticate in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-42508 Invoking auth bypass via unenforced @revoked status in ssh/knownhosts
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-46595 Invoking VerifiedPublicKeyCallback permissions skip enforcement in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-46597 Invoking byte arithmetic causes underflow and panic in ssh
golang.org/x/crypto (v0.51.0 → v0.55.0) CVE-2026-46598 Invoking pathological inputs can lead to client panic in ssh/agent
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-25680 Invoking denial of service when parsing arbitrary HTML in html
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-25681 Invoking incorrect handling of character references in DOCTYPE nodes in html
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-27136 Invoking duplicate attributes can cause XSS in html
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-39821 Invoking failure to reject ASCII-only Punycode-encoded labels in idna
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-42502 Invoking incorrect handling of HTML elements in foreign content in html
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-42506 Invoking incorrect handling of namespaced elements in foreign content in html
golang.org/x/net (v0.54.0 → v0.58.0) CVE-2026-46600 Parsing an invalid SVCB or HTTPS RR can panic in dns/dnsmessage
golang.org/x/text (v0.37.0 → v0.41.0) CVE-2026-56852 Infinite loop on invalid input
google.golang.org/grpc (v1.74.2 → v1.83.1) CVE-2026-33186 Authorization bypass via missing leading slash in :path
google.golang.org/grpc (v1.74.2 → v1.83.1) GHSA-hrxh-6v49-42gf / GO-2026-6061 Vulnerabilities in the xDS RBAC authorization engine and HTTP/2 transport

 

Gcsfuse v3.8.3

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 24 Aug 11:39
984c915

CVE Fixes:

Dependency CVE Summary
github.com/go-jose/go-jose/v4 (v4.1.3 → v4.1.4) CVE-2026-34986 Go JOSE Panics in JWE decryption
Go stdlib (1.26.2 → 1.26.6) CVE-2026-27145 Inefficient candidate hostname parsing in crypto/x509
Go stdlib (1.26.2 → 1.26.6) CVE-2026-33811 Crash when handling long CNAME response in net
Go stdlib (1.26.2 → 1.26.6) CVE-2026-33818 Enforce maximum recursion depth in encoding/asn1
Go stdlib (1.26.2 → 1.26.6) CVE-2026-39820 Quadratic string concatenation in consumeComment in net/mail
Go stdlib (1.26.2 → 1.26.6) CVE-2026-39822 Root escape via symlink plus trailing slash in os
Go stdlib (1.26.2 → 1.26.6) CVE-2026-39823 Bypass of meta content URL escaping causes XSS in html/template
Go stdlib (1.26.2 → 1.26.6) CVE-2026-39825 ReverseProxy forwards queries with more than urlmaxqueryparams parameters in net/http/httputil
Go stdlib (1.26.2 → 1.26.6) CVE-2026-39826 Escaper bypass leads to XSS in html/template
Go stdlib (1.26.2 → 1.26.6) CVE-2026-39836 Panic in Dial and LookupPort when handling NUL byte on Windows in net
Go stdlib (1.26.2 → 1.26.6) CVE-2026-42499 Quadratic string concatenation in consumePhrase in net/mail
Go stdlib (1.26.2 → 1.26.6) CVE-2026-42504 Quadratic complexity in WordDecoder.DecodeHeader in mime
Go stdlib (1.26.2 → 1.26.6) CVE-2026-42505 Invoking Encrypted Client Hello privacy leak in crypto/tls
Go stdlib (1.26.2 → 1.26.6) CVE-2026-42507 Arbitrary inputs are included in errors without any escaping in net/textproto
Go stdlib (1.26.2 → 1.26.6) CVE-2026-56853 Apply ReadHeaderTimeout when doing unencrypted HTTP/2 check in net/http
Go stdlib (1.26.2 → 1.26.6) CVE-2026-56858 Fix JavaScript regex context tracking in html/template
Go stdlib (1.26.2 → 1.26.6) CVE-2026-56859 Add recursion depth guard during decode in encoding/xml
Go stdlib (1.26.2 → 1.26.6) CVE-2026-56860 Avoid quadratic complexity in resolvePath in net/url
Go stdlib (1.26.2 → 1.26.6) CVE-2026-56862 Limit handshake messages accepted post-handshake in crypto/tls
go.opentelemetry.io/otel/sdk (v1.42.0 → v1.45.0) CVE-2026-39883 BSD kenv command not using absolute path enables PATH hijacking
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39827 Invoking memory leak when rejecting channels can lead to DoS in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39828 Invoking bypass of certificate restrictions in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39829 Invoking pathological RSA/DSA parameters may cause DoS in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39830 Invoking client can cause server deadlock on unexpected responses in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39831 Invoking bypass of FIDO/U2F security keys physical interaction in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39832 Invoking agent constraints dropped when forwarding keys in ssh/agent
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39833 Invoking key constraints not enforced in ssh/agent
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39834 Invoking infinite loop on large channel writes in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-39835 Invoking server panic during CheckHostKey/Authenticate in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-42508 Invoking auth bypass via unenforced @revoked status in ssh/knownhosts
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-46595 Invoking VerifiedPublicKeyCallback permissions skip enforcement in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-46597 Invoking byte arithmetic causes underflow and panic in ssh
golang.org/x/crypto (v0.49.0 → v0.54.0) CVE-2026-46598 Invoking pathological inputs can lead to client panic in ssh/agent
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-25680 Invoking denial of service when parsing arbitrary HTML in html
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-25681 Invoking incorrect handling of character references in DOCTYPE nodes in html
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-27136 Invoking duplicate attributes can cause XSS in html
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-33814 Infinite loop in HTTP/2 transport with bad SETTINGS_MAX_FRAME_SIZE in http2
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-39821 Invoking failure to reject ASCII-only Punycode-encoded labels in idna
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-42502 Invoking incorrect handling of HTML elements in foreign content in html
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-42506 Invoking incorrect handling of namespaced elements in foreign content in html
golang.org/x/net (v0.52.0 → v0.56.0) CVE-2026-46600 Parsing an invalid SVCB or HTTPS RR can panic in dns/dnsmessage
golang.org/x/sys (v0.42.0 → v0.47.0) CVE-2026-39824 Invoking integer overflow in NewNTUnicodeString in windows
golang.org/x/text (v0.35.0 → v0.40.0) CVE-2026-56852 Infinite loop on invalid input in golang.org/x/text
google.golang.org/grpc (v1.79.3 → v1.83.0) GHSA-hrxh-6v49-42gf / GO-2026-6061 Vulnerabilities in the xDS RBAC authorization engine and HTTP/2 transport

Gcsfuse v2.5.4

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 11 Aug 11:13
6bd3b66

Dependency Upgrades / CVE fixes

Fixed multiple CVEs: CVE-2026-33186 (gRPC 1.79.3), CVE-2026-27143 (Go 1.26.4), and 8 in x/crypto 0.52.0 (CVE-2026-42508, CVE-2026-39831, CVE-2026-46595, CVE-2026-39830, CVE-2026-39832, CVE-2026-39834, CVE-2026-39833, CVE-2025-22869).

Gcsfuse v3.11.2

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 24 Jul 10:51
5b0a355

Upgraded golang.org/x/crypto to v0.52.0 and golang to 1.26.5 to fix CVEs

Gcsfuse v3.11.1

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 17 Jul 21:47
8c2f764

New Features

  • Kernel Reader Support for Regional Buckets: Extended Kernel Reader capabilities to Regional buckets to significantly improve read throughput. (Note: Kernel reader is the default read mode in Rapid buckets since 3.7.1 with no minimum kernel version requirements or changes to existing request sizes).
    • How It Works: The Kernel Reader path relies directly on the Linux kernel's readahead mechanism for prefetching and enables asynchronous reads. We have optimized the default kernel parameters to streamline the read pipeline and maximize throughput.

    • Prerequisites: To use this read path on regional buckets, GCSFuse configures a few kernel parameters. These configuration changes are fully managed in the GKE environment. On non-GKE environments, GCSFuse requires sudo permissions or users must manually configure fuse max pages limit before mount and read_ahead_kb, max_background, and congestion_threshold after mount. Default config values:

      • Fuse max pages limit: no. of pages needed for 16MB on the machine (4096 on a machine with 4K page size)
      • read_ahead_kb: 131072
      • max_background: min(max(12, 2*numCPU),96)
      • congestion_threshold: (3 * max_background)/4

      Manual configuration of these settings is shown below using a c4-standard-192 instance:

      ## Before mount
      echo 4096 | sudo tee /proc/sys/fs/fuse/max_pages_limit
      
      ## After mount
      export MOUNT_POINT=<mount path>
      
      echo 131072 | sudo tee /sys/class/bdi/0:$(stat -c "%d" $MOUNT_POINT)/read_ahead_kb
      echo 96 | sudo tee /sys/fs/fuse/connections/$(stat -c "%d" $MOUNT_POINT)/max_background
      echo 72 | sudo tee /sys/fs/fuse/connections/$(stat -c "%d" $MOUNT_POINT)/congestion_threshold
    • Opt-in & Kernel Requirements: You can opt in for kernel reader mode in Regional buckets using the --enable-kernel-reader command-line flag (or setting file-system.enable-kernel-reader: true in your configuration file). Using this feature requires Linux kernel 6.13+ or the latest Container-Optimized OS (COS) image (supported on COS with kernel 6.12 as well via cherry-picked patch).

    • Performance: On regional buckets, we see sequential read performance from a single user thread reaching up to 2.5 GB/s (~8x improvement over current read path). We also see performance improvement for large random reads (~3x for 16MB random reads).

    • Larger Request Processing: Support for larger FUSE request sizes is available when this feature is enabled(applicable only for regional buckets). Read requests up to 16MB are supported by default, while write requests are limited to 1MB.

    • Memory Usage Note (Regional Only): Enabling kernel reader on regional buckets increases the FUSE max pages limit and activates asynchronous reads. While this significantly accelerates large read operations, it may result in slightly higher overall memory consumption (up to 15MB per read request).

  • Negative Stat Cache Enhancements: The existing negative stat cache has been updated to also store implicit directories. This optimizes the polling of missing directories when frequently checking for non-existent objects [PR#4729].

Bug fixes & Improvements

  • LookupInode Latency: Optimized LookupInode latency for Hierarchical Namespace (HNS) buckets by executing GetFolder and StatObject calls concurrently as a race, cutting down the overall time to resolve inodes [PR#4772].
  • Heap Allocation Optimization: Optimized the fetchCoreEntity internal function to avoid unnecessary heap allocations, improving memory efficiency during filesystem operations [PR#4790].
  • Error Unwrapping for NotFoundError: Implemented error unwrapping for NotFoundError by adding an Unwrap() error method. This ensures that calling RmDir (or os.Remove) on an explicit directory deleted out-of-band directly in GCS correctly maps to a POSIX ENOENT (os.ErrNotExist) response instead of a generic syscall.EIO input/output error [PR#4709].
  • Tracing Attributes: Enhanced telemetry by adding read.offset and read.size attributes to fs.file.read traces, providing more granular tracing support for file read operations [PR#4822].
  • BufferedReader Leak Fix: Fixed a resource leak in BufferedReader by ensuring that inflight prefetch blocks are eagerly released on non-EOF read errors. Previously, repeated transient read errors would leak blocks, shrink the global block budget mount-wide, grow RSS memory, and cause the Destroy() method to block for its 10-second timeout [PR#4840].
  • Log Severity Adjustment: Changed the log severity for the fallback action in streaming writes from INFO down to TRACE, which reduces noise in standard logs [PR#4854].
  • Metrics Double Counting Fix: Fixed a double counting issue for the read bytes count metrics in both the Kernel Range Reader and Buffered Reader. This occurred because the underlying monitoringReadCloser (which wraps the GCS reader) already increments the read bytes count internally [PR#4879].

Dependency Upgrades / CVE fixes

  • Bumped the go-dependencies group with 5 updates in the root directory, including OpenTelemetry (exporter/metric, exporter/trace) and golang.org/x packages (sync, sys, text) to ensure better stability and security [PR#4771].

Gcsfuse v3.11.0

Gcsfuse v3.11.0 Pre-release
Pre-release

Choose a tag to compare

@gcsfuse-github-machine-user-bot gcsfuse-github-machine-user-bot released this 15 Jul 16:09
69612a1
feat(kernel range reader): Making enable-kernel-reader flag public (#…