kubo v0.43.1 and (v0.43.0 : Aug 3)
Kubo is the reference Go implementation of IPFS: it runs a node, serves content over HTTP gateways, manages the local content store and pins, and participates in peer-to-peer routing and transfer. v0.43.0 is the larger feature/security release; v0.43.1 is the important follow-up that repairs several regressions and operational issues.
Kubo v0.43.0
1. Critical memory-exhaustion fixes
Background: Kubo’s networking layer includes libp2p pubsub (topic-based peer messaging) and an HTTP/3/WebTransport server. Both accept input from remote peers, so unbounded resource use can let an attacker exhaust node memory.
Change: The release fixes pubsub memory exhaustion (CVE-2026-46679) by freeing a topic’s state once its last peer leaves and limiting control-message packing. It also updates quic-go to fix HTTP/3 trailer decompression memory exhaustion (CVE-2026-40898), where a crafted compressed trailer could expand roughly 50× in memory.
Why it matters: These are remote denial-of-service risks for publicly reachable nodes. Operators should treat v0.43.0 as a security update, not merely a feature release.
2. Native ipfs:// and ipns:// URI support
Background: IPFS content is normally addressed by CID, while mutable names use IPNS. Kubo’s CLI and APIs previously expected path-style inputs such as /ipfs/<cid> or /ipns/<name>.
Change: Commands that accept a path or CID now also accept native URI forms: ipfs://<cid>, ipns://<name>, ipfs:<cid>, and ipns:<name>. For example, ipfs cat ipfs://<cid> now behaves like ipfs cat /ipfs/<cid>.
Why it matters: This aligns Kubo with the URI scheme used by browsers, wallets, and other IPFS tooling, reducing conversion friction and making IPFS identifiers more portable across applications.
3. MFS stability and configuration safety
Background: The Mutable File System (MFS) is Kubo’s POSIX-like writable layer over content-addressed storage; configuration validation protects nodes from silently running with invalid or deprecated settings.
Change: ipfs files no longer hangs when garbage collection runs, and ipfs config replace keeps the node’s PeerID and private key synchronized. Startup also produces clearer errors for invalid, deprecated, or removed configuration—such as old Provider/Reprovider settings and removed routing options.
Why it matters: The MFS fix prevents a practical operational hang, while better config validation catches mistakes at startup instead of causing confusing behavior later.
Kubo v0.43.1
1. Restored batched provider-record writes
Background: When Kubo provides content, it writes provider records so other peers can discover which node has a CID. Frequent, unbatched disk writes can create high I/O load on busy nodes.
Change: Provider-record writes are batched again, 256 at a time, reversing a v0.43.0 performance regression that caused constant disk activity and high I/O rates for some operators.
Why it matters: This restores pre-v0.43.0 disk-write performance and is likely the most important reason for node operators—especially hosting providers and pinning services—to upgrade from v0.43.0.
2. Correct shutdown and bootstrap behavior
Background: Kubo daemons can enable periodic garbage collection (--enable-gc) and use bootstrap peers to join the public IPFS network. Both need predictable lifecycle behavior for automation and private deployments.
Change: A daemon started with --enable-gc now exits properly after ipfs shutdown / POST /api/v0/shutdown; previously, the GC loop only stopped on a signal, leaving the process alive. Setting Bootstrap to an empty array ([]) now fully disables bootstrap dialing, including stale saved backup peers.
Why it matters: These fixes make container orchestration, systemd services, and private-network deployments more reliable: processes terminate cleanly, and operators can genuinely prevent unwanted outbound bootstrap connections.
3. Gateway Ipfs-Uri header and FUSE reliability
Background: HTTP gateways translate IPFS paths for web clients, while FUSE mounts expose IPFS/MFS content through the local filesystem. Both need standards-compatible and stable behavior for downstream applications.
Change: Gateway responses now use the new Ipfs-Uri header instead of deprecated X-Ipfs-Path, implementing IPIP-548; the old header can be temporarily re-enabled through Gateway.DeprecatedXIpfsPath. FUSE mounts gain stable inode numbers, and a bug that could lose writes after renaming a file on /mfs or /ipns was fixed.
Why it matters: Ipfs-Uri correctly handles non-ASCII and special filenames, improving web interoperability; stable inodes and the rename/write fix make FUSE-based workflows usable with tools such as vim and find.
Upgrade guidance
- From older releases: upgrade directly to v0.43.1, since it includes v0.43.0’s security fixes plus the later regression and reliability fixes.
- From v0.43.0: upgrade mainly for the provider-write I/O regression, clean RPC shutdown, bootstrap control, gateway header change, and FUSE fixes.
- Context: v0.43.1 is described as the final Kubo release with new features from the Shipyard team; afterward, only critical security or bug-fix releases were planned. github