ngrok
maintainer brenekh
· 123 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads prebuilt binaries from equinox.io, a non-whitelisted but plausible official distribution domain for ngrok; however, the downloads are verified via sha256sums, and the binaries are from the official vendor, making the risk low despite the static analyzer flag.
Triggered rules
LOW
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is LOW (confidence 95%): The package downloads prebuilt binaries from equinox.io, a non-whitelisted but plausible official distribution domain for ngrok; however, the downloads are verified via sha256sums, and the binaries are from the official vendor, making the risk low despite the static analyzer flag.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:15
source_x86_64=("https://bin.equinox.io/a/5nBQH3CiRsa/ngrok-v3-3.39.9-linux-amd64.tar.gz")
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Brenek Harrison <brenekharrison @ gmail d0t com>
2
# Contributor: Daurnimator <daurnimator@archlinux.org>
3
# Contributor: Bjorn Neergaard (neersighted) <bjorn@neersighted.com>
4
# Contributor: Peter Sutton (foxxy) <foxxy@foxdogstudios.com>
5
6
pkgname=ngrok
7
pkgver=3.39.9
8
pkgrel=1
9
pkgdesc='A tunneling, reverse proxy for developing and understanding networked, HTTP services'
10
url='https://ngrok.com'
11
license=('LicenseRef-custom')
12
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
13
optdepends=('bash-completion: Bash completion support')
14
source=("TERMS-OF-SERVICE.txt")
15
source_x86_64=("https://bin.equinox.io/a/5nBQH3CiRsa/ngrok-v3-3.39.9-linux-amd64.tar.gz")
16
source_i686=("https://bin.equinox.io/a/jEtFg4yox4u/ngrok-v3-3.39.9-linux-386.tar.gz")
17
source_armv7h=("https://bin.equinox.io/a/6z2GognC1cY/ngrok-v3-3.39.9-linux-arm.tar.gz")
18
source_aarch64=("https://bin.equinox.io/a/bd5z9PXqhwe/ngrok-v3-3.39.9-linux-arm64.tar.gz")
19
sha256sums=('d1fce3c7e78d5f7e5307238ee5f371b7a10911aeb249e3358e945eaa8cf2f1b2')
20
sha256sums_i686=('9daf4b21dd2b9743949992706c1ef44457b1dfd44542f182a2c55ea59115c52b')
21
sha256sums_x86_64=('0b74db428f655944292cf6c554d35c8941faeccff87d5a6835152c7a08281ff0')
22
sha256sums_armv7h=('b0f9e39668406d361d44a242546ebba4144256ff3c320032205379c18a1ead83')
23
sha256sums_aarch64=('97fb70d88c83ee44d9655b67e877702a1fc0e75656d33d414043772cd3750c1f')
24
25
# In order to make Ngrok's built-in updater happy, we need to avoid modifying the binary
26
options=(!strip)
27
28
package() {
29
BASH_COMPLETION_DIR="$pkgdir/usr/share/bash-completion/completions"
30
ZSH_COMPLETION_DIR="$pkgdir/usr/share/zsh/site-functions"
31
32
# Copy terms of service to license directory
33
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" TERMS-OF-SERVICE.txt
34
35
cd "${srcdir}"
36
37
# Install the program.
38
install -Dm755 "ngrok" "${pkgdir}/usr/bin/ngrok"
39
40
# Generate completion for bash and zsh
41
mkdir -p "$BASH_COMPLETION_DIR" "$ZSH_COMPLETION_DIR"
42
SHELL=/usr/bin/bash ${pkgdir}/usr/bin/ngrok completion > "$BASH_COMPLETION_DIR/ngrok"
43
SHELL=/usr/bin/zsh ${pkgdir}/usr/bin/ngrok completion > "$ZSH_COMPLETION_DIR/_ngrok"
44
}
45
46
# vim: ft=sh ts=2 sw=2 et
47
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 23:22:13 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |