From 7786e9df8bd7fe7a7a959865ac987592ea2fe3af Mon Sep 17 00:00:00 2001 From: ylwango613 <1217816127@qq.com> Date: Sat, 3 Jan 2026 15:49:56 +0800 Subject: [PATCH] fix: prevent path disclosure in error messages for invalid digests --- server/create.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server/create.go b/server/create.go index 15e364e1e..435602897 100644 --- a/server/create.go +++ b/server/create.go @@ -618,6 +618,11 @@ func ggufLayers(digest string, fn func(resp api.ProgressResponse)) ([]*layerGGML var layers []*layerGGML fn(api.ProgressResponse{Status: "parsing GGUF"}) + // verify digest not empty + if digest == "" { + return nil, fmt.Errorf("invalid digest: empty") + } + blobPath, err := GetBlobsPath(digest) if err != nil { return nil, err @@ -625,6 +630,10 @@ func ggufLayers(digest string, fn func(resp api.ProgressResponse)) ([]*layerGGML blob, err := os.Open(blobPath) if err != nil { + // remove path in err + if pathErr, ok := err.(*os.PathError); ok { + return nil, fmt.Errorf("%s: %w", pathErr.Op, pathErr.Err) + } return nil, err } defer blob.Close()