Audit results
The latest security audit of HF Panel 1.0.0: which tools scanned which code, the versions used, what was found and what was fixed.
The results of the security audit of HF Panel 1.0.0, made on 25 October 2026. It combined automated scans of all the source code with a manual review of the riskiest parts. This page lists what was checked and what changed, as it is.
What was scanned, and with what
| Tool | Version | What it checked |
|---|---|---|
| govulncheck | 1.1.4, Go vulnerability database of 20 October 2026 (4,710 entries) | the Go programs hf-api and HF Local, and every Go module they use |
| gosec | 2.23.0 | security patterns in the Go code of hf-api and HF Local |
| staticcheck | 2025.1.1 | bugs and dead code in the same Go code |
| ShellCheck | 0.9.0 | hf-agentd and its 42 command files, and the 14 installer and update scripts |
| npm audit | npm 10.9.4 | the seven web interfaces (panel, Mail, Files, DB Studio, HF Local, documentation, website) |
The Go code was built and tested with Go 1.24.7, the web interfaces with Node.js 22.22.0.
What the scans found
| Scan | Result |
|---|---|
| govulncheck, Go modules | 1 module with a vulnerability the code can reach (the PostgreSQL driver, fixed in the November 2026 free-tool scan below); 1 module with a vulnerability the code never reaches (fixed below) |
| govulncheck, Go standard library | 48 vulnerabilities in hf-api and 46 in HF Local, all fixed in newer Go releases (built with Go 1.26.10 since the November 2026 free-tool scan below) |
| gosec | 484 findings in hf-api and 546 in HF Local. Every finding of high and medium severity was read. None was an exploitable problem: SQL is always built with placeholders and quoted names, commands run without a shell and with checked arguments, file paths are fixed or checked, and outgoing requests already refuse private addresses. The few deliberate exceptions now carry a written reason in the code. |
| staticcheck | 50 findings in hf-api and 60 in HF Local: style and unused code, none with a security impact |
| ShellCheck | 97 notes in hf-agentd and 156 in the scripts, mostly style. None was a quoting or injection problem: every argument hf-agentd receives is checked before it is used |
| npm audit, what ships to browsers | 0 vulnerabilities in all seven interfaces |
| npm audit, development tools | 3 (2 critical, 1 moderate) in the test runner of five interfaces, fixed below |
What was fixed
| Area | Change |
|---|---|
| Sign-in | a wrong username now takes as long to refuse as a wrong password, on the panels and in Files and DB Studio, so sign-in no longer tells which usernames exist |
| the development protocol log no longer writes passwords: sign-in commands are written without their credentials | |
| attachments of unsent drafts are stored readable by hf-api only | |
| Panel data | a restored copy of the panel database and the saved copy of the old settings file are created private from the start, never readable by others even for a moment |
| Account locks | the fallback lock file in the shared temporary folder never follows a symbolic link |
| HF Local on macOS | the administrator prompt that updates the hosts file escapes its command fully, so an unusual file path can't add commands |
| Website | publishes /.well-known/security.txt with the address for security reports |
| Go modules | github.com/klauspost/compress updated from 1.17.6 to 1.18.7 (GO-2026-5841) |
| Test runner | Vitest updated from 3.2.7 to 4.1.12 in five interfaces (GHSA-5gmw-xhrv-c9v3, GHSA-85c8-ppgw-ccpr, GHSA-82fw-gwwq-j7x9, GHSA-qxg6-89mg-rqv8); it is used only by developers and never ships |
After the changes every Go test of hf-api and HF Local and every interface's tests pass.
Manual review
These parts were read line by line: sign-in, sessions, CSRF and two-factor login; the API tokens; the File Manager, Files and the web disk (paths, symbolic links, share links); unpacking archives; DB Studio's database access; the argument checks of hf-agentd and every place the panel calls it; outgoing requests (uptime checks, webhooks, the speed test, alerts, push notifications); password hashing; sign-in limits; secrets in logs; and the file permissions the installer sets. Apart from the fixes above, no problems were found.
November 2026 free-tool scan
A second scan on 2 November 2026 (govulncheck, gosec, semgrep, ShellCheck and npm audit) closed the two items that were still open and fixed four small ones:
| Area | Change |
|---|---|
| Go | every Go program is built with Go 1.26.10 (was 1.24.7): govulncheck 1.9.0 finds 0 vulnerabilities the code can reach |
| Go modules | golang.org/x/net 0.62.0, x/crypto 0.58.0, x/text 0.43.0 in hf-api and HF Connect; the PostgreSQL driver pgx 5.9.2 (GO-2026-5004, GO-2026-4771, GO-2026-4772) |
| Panel backups | opening a panel backup stops at 4 GiB for one file and 8 GiB in all |
| Lock files | private to the panel's user (0600); the temporary-folder fallback is a private folder |
| HF Local on macOS | the start-up error box escapes its title and text |
| hf-agentd | two lists are joined without shell wildcard expansion |
Still open
Nothing from these scans.