Trying to read malformed HAMT sharded directories can cause panics and virtual memory leaks. If you are reading untrusted user input, an attacker can then trigger a panic.
This is caused by a bogus fanout parameter in the HAMT directory nodes.
There are no known workarounds (users are advised to upgrade).
{
"url": "https://pkg.go.dev/vuln/GO-2023-1559",
"review_status": "REVIEWED"
}{
"imports": [
{
"symbols": [
"AttemptHAMTShardFromNode",
"NewUnixFSHAMTShard",
"NewUnixFSHAMTShardWithPreload",
"_UnixFSHAMTShard.Length",
"_UnixFSHAMTShard.Lookup",
"_UnixFSHAMTShard.LookupByNode",
"_UnixFSHAMTShard.LookupBySegment",
"_UnixFSHAMTShard.LookupByString",
"_UnixFSShardedDir__ListItr.Next",
"bitField"
],
"path": "github.com/ipfs/go-unixfsnode/hamt"
},
{
"symbols": [
"BlockSizes",
"BuildUnixFS",
"BuildUnixFSDirectory",
"BuildUnixFSFile",
"BuildUnixFSRecursive",
"BuildUnixFSShardedDirectory",
"BuildUnixFSSymlink",
"Data",
"DataType",
"Fanout",
"FileSize",
"FractionalNanoseconds",
"HashType",
"Mtime",
"Permissions",
"PermissionsString",
"Seconds",
"Time",
"shard.bitmap",
"shard.serialize"
],
"path": "github.com/ipfs/go-unixfsnode/data/builder"
}
]
}