Safeguard
Supply Chain•

Do signed commits make a Hugging Face model trustworthy?

A verified signature tells you who made a commit, not that the files are safe. Here is what signing proves, what it cannot, and how to use it in review.

Safeguard Security Team
4 min read

Not by themselves. A verified signed commit shows that a commit came from the holder of a key, which supports checking origin. Hugging Face states that signing does not guarantee a file is safe, only where it came from. Use it to decide who to trust, then still review what you load.

What git does and does not check

The Hub documentation points out that git controls who can push to a repository, but it does not authenticate the actual authors of commits. Anyone can set a name and email on a commit. Signing closes that gap by tying a commit to a key.

On the Hub, a commit can show three states: Verified when it is signed and the signature checks out, Unverified when it is signed but the signature cannot be verified, and no signing status when it is not signed. For Verified, the public key must be uploaded to the account.

What a Verified badge tells you

  • The commit was made by someone holding the private key linked to that account.
  • The commit content was not changed after signing.

What it does not tell you

You might assumeReality
The files are safeA trusted author can still publish a bad file by mistake, or after a compromise
The publisher is who they say they are in real lifeIt proves key ownership, not identity
Everything in the repo is signedOnly the commits that carry signatures
The latest commit is the one you reviewedPin a commit hash

Hugging Face's own pickle guidance says signing does not guarantee your file is safe, but does guarantee its origin, and that if you know and trust user A and the commit is signed by A's key, it is pretty safe to assume you can trust the file. Read that as a judgment call about a known party, not a technical proof.

How to use signing in a model review

  1. Decide which publishers you recognize and write the list down.
  2. Check that the commit you plan to pin shows as Verified.
  3. Pin that exact commit. Our guide on pinning a model to a commit shows how.
  4. Prefer a non-pickle format and a restricted load.
  5. Re-check signatures when you move to a newer commit. A change in signer is worth a question.

If you publish models

Sign your commits. It is a small step that gives your users something to verify. The setup is covered in the Hub docs, and it takes a GPG key, uploading the public part to your account and signing commits with the signing flag.

git config user.signingkey <your key id>
git commit -S -m "Release 1.2"

Keep the private key protected, and rotate it if a laptop is lost.

Where Safeguard fits

For the code around your models, Safeguard offers SBOM and dependency scanning, policy gates and reachability analysis. Try a free scan at gold.safeguard.sh/scan. Related: model weights signing and attestation.

Quick check

Does an Unverified badge mean the model is malicious?

No. It means the commit was signed but the signature could not be verified, for example because a key was not uploaded. It does mean you cannot rely on the signature.

Is a signed commit better than a pinned hash?

They answer different questions. The signature speaks to who authored it, and the pin keeps you on the exact version you reviewed. Use both.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.