yandex-browser
The package installs a prebuilt binary from a non-whitelisted host (repo.yandex.ru), which is an official vendor domain but not on standard whitelists, and performs privileged operations like creating groups and setting permissions, posing a supply-chain risk if the source were compromised.
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:28
source=("${pkgname}-${_pkgver}.deb::https://repo.yandex.ru/yandex-browser/deb/pool/main/y/yandex-${_pkgname}/yandex-${_pkgname}_${_pkgver}_amd64.deb")
privileged_install
The package grants elevated privileges or installs an update path outside pacman: a /etc/sudoers.d rule (often passwordless), a setuid/setgid binary, or a self-update script/service that can fetch and run future code with no checksum verification. The initial install may be verified, but the ongoing privilege + update surface is a real supply-chain / privilege-escalation risk.
-
.install:100
chmod 2755 "$service_path"
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package installs a prebuilt binary from a non-whitelisted host (repo.yandex.ru), which is an official vendor domain but not on standard whitelists, and performs privileged operations like creating groups and setting permissions, posing a supply-chain risk if the source were compromised.
PKGBUILD
1 offending line(s) highlighted# Maintainer: Mikhail Velichko <efklid@gmail.com>
_pkgname=browser-stable
pkgname=yandex-browser
pkgver=26.8.1.1111
_pkgver=26.8.1.1111-1
pkgrel=1
#epoch=1
pkgdesc="The web browser from Yandex.
Yandex Browser is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier."
arch=("x86_64")
url='https://browser.yandex.com/'
license=("custom:yandex-browser")
categories=("network")
provides=(yandex-browser)
conflicts=("yandex-browser" "yandex-browser-stable" "yandex-browser-corporate")
depends=("binutils" "ttf-liberation" "jq" "alsa-lib" "at-spi2-atk" "curl" "dbus" "expat" "libcups" "mesa" "gtk4" "nss" "squashfs-tools" "wget" "xdg-utils"
"vulkan-icd-loader" "libxcomposite")
optdepends=(
"speech-dispatcher"
"gstreamer-meta"
"cryptopro-csp-k1"
)
source=("${pkgname}-${_pkgver}.deb::https://repo.yandex.ru/yandex-browser/deb/pool/main/y/yandex-${_pkgname}/yandex-${_pkgname}_${_pkgver}_amd64.deb")
sha256sums=("784f93792eeb038991c0533f7d9b92598da7be94a8e5aa6f06e3fd1ebe5094a6")
install=yandex-browser.install
prepare() {
tar -xf data.tar.xz
}
package() {
cp -dr --no-preserve=ownership opt usr "${pkgdir}"/
# The stable version uses the "browser" folder in /opt/yandex. ${_pkgname} cannot be used in this section for the stable branch
# install -D -m0644 "${pkgdir}"/opt/yandex/browser/product_logo_128.png "${pkgdir}"/usr/share/pixmaps/${pkgname}.png
chmod 4755 "${pkgdir}"/opt/yandex/browser/yandex_browser-sandbox
# Fix duplicate menu entry: NoDisplay=true belongs in [Desktop Entry], not in a desktop action section
sed -i '/^\[Desktop Entry\]/a NoDisplay=true' \
"${pkgdir}"/usr/share/applications/ru.yandex.desktop.browser.desktop
}
Changes since previous scan
--- PKGBUILD @ 2026-10-28 00:06+++ PKGBUILD @ 2026-11-01 00:21@@ -2,8 +2,8 @@ _pkgname=browser-stable pkgname=yandex-browser-pkgver=26.6.1.1083-_pkgver=26.6.1.1083-1+pkgver=26.8.1.1111+_pkgver=26.8.1.1111-1 pkgrel=1 #epoch=1 @@ -26,7 +26,7 @@ ) source=("${pkgname}-${_pkgver}.deb::https://repo.yandex.ru/yandex-browser/deb/pool/main/y/yandex-${_pkgname}/yandex-${_pkgname}_${_pkgver}_amd64.deb")-sha256sums=("afb7e5027a0b6a05a7f86b2f9fa9b5b29696274d8b3e77f0348abe57e45d24c5")+sha256sums=("784f93792eeb038991c0533f7d9b92598da7be94a8e5aa6f06e3fd1ebe5094a6") install=yandex-browser.install prepare() {Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 3 |
| 2026-10-31 00:07:41 | Medium | 3 |
| 2026-10-30 00:29:30 | Medium | 3 |
| 2026-10-29 00:13:55 | Medium | 3 |
| 2026-10-28 13:50:29 | Medium | 3 |
| 2026-10-28 00:06:54 | Medium | 3 |
| 2026-10-27 00:23:28 | Medium | 3 |
| 2026-10-26 00:12:40 | Medium | 3 |
| 2026-10-25 00:20:48 | Medium | 3 |
| 2026-10-24 00:14:55 | Medium | 3 |
| 2026-10-23 00:02:19 | Medium | 3 |
| 2026-10-22 00:13:10 | Medium | 3 |
| 2026-10-21 00:12:50 | Medium | 3 |
| 2026-10-20 00:10:31 | Medium | 3 |
| 2026-10-19 00:03:55 | Medium | 3 |
| 2026-10-18 00:06:55 | Medium | 3 |
| 2026-10-17 00:21:55 | Medium | 3 |
| 2026-10-16 00:12:47 | Medium | 3 |
| 2026-10-15 00:28:05 | Medium | 3 |
| 2026-10-14 00:06:47 | Medium | 3 |