firefox-extension-amber
Triggered rules
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:10
source=("https://paysonwallach.com/amber/amber-${pkgver}.xpi")
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 72%): The .xpi (Firefox extension) is downloaded from a personal domain (paysonwallach.com) rather than from the official Mozilla AMO store or the project's GitHub releases. While a sha256sum is present (providing integrity checking against tampering in transit), the source is still a personal host controlled solely by the maintainer, meaning the binary could be silently replaced at any time without a corresponding PKGBUILD update. An .xpi is executed code (JavaScript running in the browser with extension privileges), so a compromised or swapped file would represent a real supply-chain risk. The sha256sum mitigates MITM but not a deliberate host-side substitution paired with a PKGBUILD update. This is a genuine medium-risk pattern: executed code from an unofficial/personal host.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Payson Wallach <payson@paysonwallach.com>
pkgname=firefox-extension-amber
pkgver=1.21
pkgrel=1
pkgdesc='Bring the Unix philosophy to the browser.'
arch=(x86_64)
url="https://github.com/paysonwallach/amber-web-extension/"
license=('GPL')
source=("https://paysonwallach.com/amber/amber-${pkgver}.xpi")
noextract=("amber-${pkgver}.xpi")
sha256sums=('6a05282b2a7b71edc0cc8f3f6e7eb9af2b7cd29a0639e57812c6eadaf8b43330')
package() {
depends=('firefox')
_extension_id='amber@paysonwallach.com'
_extension_dest="${pkgdir}/usr/lib/firefox/browser/extensions/${_extension_id}"
install -Dm644 "${srcdir}/amber-${pkgver}.xpi" "${_extension_dest}.xpi"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | MEDIUM | 2 |
| 2026-08-02 00:16:08 | MEDIUM | 2 |
| 2026-08-01 00:11:18 | MEDIUM | 2 |
| 2026-07-31 00:14:10 | MEDIUM | 2 |
| 2026-07-30 00:17:23 | MEDIUM | 2 |
| 2026-07-29 00:25:53 | MEDIUM | 2 |
| 2026-07-28 00:07:28 | MEDIUM | 2 |
| 2026-07-27 00:24:32 | MEDIUM | 2 |
| 2026-07-26 00:07:32 | MEDIUM | 2 |
| 2026-07-25 00:13:44 | MEDIUM | 2 |
| 2026-07-24 00:02:28 | MEDIUM | 2 |
| 2026-07-23 00:14:47 | MEDIUM | 2 |
| 2026-07-22 00:29:32 | MEDIUM | 2 |
| 2026-07-21 00:24:15 | MEDIUM | 2 |
| 2026-07-20 00:19:49 | MEDIUM | 2 |
| 2026-07-19 00:17:08 | MEDIUM | 2 |
| 2026-07-18 00:14:48 | MEDIUM | 2 |
| 2026-07-17 00:06:16 | MEDIUM | 2 |
| 2026-07-16 00:05:41 | MEDIUM | 2 |
| 2026-07-15 00:09:25 | MEDIUM | 2 |