opera-developer

maintainer MojArch · 91 votes · scanned 2026-08-03 00:08:14.047287
MEDIUM
View on AUR ↗
Why flagged The package installs a setuid binary (opera_sandbox with chmod 4755), which grants elevated privileges, flagged as a medium-risk privileged operation outside typical pacman handling.

Triggered rules

MEDIUM Privileged / out-of-pacman install (sudoers, setuid, or self-update) 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.

  • PKGBUILD:160 chmod 4755 \
MEDIUM AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is MEDIUM (confidence 90%): The package installs a setuid binary (opera_sandbox with chmod 4755), which grants elevated privileges, flagged as a medium-risk privileged operation outside typical pacman handling.

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: MojArch
2
3pkgname=opera-developer
4pkgver=135.0.5966.0
5pkgrel=1
6pkgdesc='Fast, secure, easy-to-use web browser (Developer Stream)'
7arch=('x86_64')
8url='https://www.opera.com/computer'
9license=('LicenseRef-opera')
10options=(!strip !debug !zipman)
11backup=('etc/opera-developer/default')
12provides=(
13 'opera-developer-browser'
14)
15conflicts=(
16 'opera-developer-ffmpeg-codecs-bin'
17)
18replaces=(
19 'opera-developer-ffmpeg-codecs-bin'
20)
21
22depends=(
23 'alsa-lib'
24 'at-spi2-core'
25 'cairo'
26 'cups'
27 'curl'
28 'dbus'
29 'expat'
30 'gcc-libs'
31 'glib2'
32 'glibc'
33 'gtk3'
34 'hicolor-icon-theme'
35 'libnotify'
36 'libx11'
37 'libxcb'
38 'libxcomposite'
39 'libxdamage'
40 'libxext'
41 'libxfixes'
42 'libxkbcommon'
43 'libxrandr'
44 'libxss'
45 'mesa'
46 'nspr'
47 'nss'
48 'pango'
49 'systemd-libs'
50 'ttf-font'
51 'xdg-utils'
52)
53
54optdepends=(
55 'qt5-base: Qt5 integration'
56 'qt6-base: Qt6 integration'
57 'egl-gbm'
58 'upower'
59)
60
61_nwjs_ffmpeg_version=0.114.0
62_upstream_deb_pkg='opera-developer'
63_debfile="${_upstream_deb_pkg}_${pkgver}_amd64.deb"
64_deburl="https://get.opera.com/pub/opera-developer/${pkgver}/linux/${_debfile}"
65_ffmpeg_zip="${_nwjs_ffmpeg_version}-linux-x64.zip"
66
67source=(
68 "${_deburl}"
69 "opera"
70 "default"
71 "nwjs-ffmpeg-${_ffmpeg_zip}::https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases/download/${_nwjs_ffmpeg_version}/${_ffmpeg_zip}"
72)
73
74sha256sums=(
75 'b059a4241852cf013297c559881be9af2334f1651406641dd8d93e641872d690'
76 '508512464e24126fddfb2c41a1e2e86624bdb0c0748084b6a922573b6cf6b9c5'
77 '99fc0d2822edd14e234d451995db47148125e4580221a292598959421d131231'
78 'eccac785a61f552d7ce75a1aba990486d977d74cd6ac78091c21b3c807cf1b01'
79)
80
81prepare() {
82 sed -e 's|%pkgname%|opera-developer|g' \
83 -e 's|%operabin%|opera-developer/opera-developer|g' \
84 -i "$srcdir/opera"
85
86 sed -e 's|%pkgname%|opera-developer|g' \
87 -i "$srcdir/default"
88}
89
90package() {
91 cd "$srcdir"
92
93# Extract upstream package
94
95 bsdtar -xf "$_debfile"
96
97 bsdtar -xf data.tar.xz \
98 --exclude='usr/share/lintian' \
99 --exclude='usr/share/menu' \
100 -C "$pkgdir"
101
102# Normalize multiarch library layout
103
104 local libroot="$pkgdir/usr/lib"
105
106 local multiarch_dir
107 multiarch_dir="$(find "$libroot" \
108 -mindepth 1 \
109 -maxdepth 1 \
110 -type d \
111 -name '*-linux-gnu' \
112 | head -n1)"
113
114 if [[ -z "$multiarch_dir" ]]; then
115 echo 'ERROR: multiarch library directory not found'
116 return 1
117 fi
118
119 local upstream_libdir
120 upstream_libdir="$(find "$multiarch_dir" \
121 -mindepth 1 \
122 -maxdepth 1 \
123 -type d \
124 -name 'opera-developer' \
125 | head -n1)"
126
127 if [[ -z "$upstream_libdir" ]]; then
128 echo 'ERROR: upstream Opera payload directory not found'
129 return 1
130 fi
131
132 rm -rf "$libroot/opera-developer"
133 mv "$upstream_libdir" \
134 "$libroot/opera-developer"
135 rm -rf "$multiarch_dir"
136
137# Replace FFmpeg
138
139 bsdtar -xf "nwjs-ffmpeg-${_ffmpeg_zip}"
140
141 local ffmpeg_so
142 ffmpeg_so="$(find "$srcdir" \
143 -type f \
144 -name 'libffmpeg.so' \
145 | head -n1)"
146
147 if [[ -z "$ffmpeg_so" ]]; then
148 echo "ERROR: libffmpeg.so not found in $_ffmpeg_zip"
149 return 1
150 fi
151
152 rm -f "$pkgdir/usr/lib/opera-developer/libffmpeg.so"
153
154 install -Dm755 "$ffmpeg_so" \
155 "$pkgdir/usr/lib/opera-developer/libffmpeg.so"
156
157# Sandbox
158
159 if [[ -f "$pkgdir/usr/lib/opera-developer/opera_sandbox" ]]; then
160 chmod 4755 \
161 "$pkgdir/usr/lib/opera-developer/opera_sandbox"
162 fi
163
164# Defaults
165
166 install -Dm644 "$srcdir/default" \
167 "$pkgdir/etc/opera-developer/default"
168
169# Launcher
170
171 local upstream_binary
172
173 upstream_binary="$(find "$pkgdir/usr/lib/opera-developer" \
174 -maxdepth 1 \
175 -type f \
176 \( -name 'opera-developer' -o -name 'opera' \) \
177 | head -n1)"
178
179 if [[ -z "$upstream_binary" ]]; then
180 echo 'ERROR: upstream Opera executable not found'
181 return 1
182 fi
183
184 rm -f "$pkgdir/usr/bin/opera-developer"
185
186 install -Dm755 "$srcdir/opera" \
187 "$pkgdir/usr/bin/opera-developer"
188
189# Desktop entries
190
191 local desktop_dir="$pkgdir/usr/share/applications"
192
193 if [[ -d "$desktop_dir" ]]; then
194 find "$desktop_dir" \
195 -maxdepth 1 \
196 -type f \
197 -name '*.desktop' \
198 -print0 |
199 while IFS= read -r -d '' desktop_file; do
200 if grep -qi 'opera' "$desktop_file"; then
201 sed -i \
202 -e 's|^Exec=.*|Exec=opera-developer %U|' \
203 -e 's|^TryExec=.*|TryExec=opera-developer|' \
204 "$desktop_file"
205 fi
206 done
207 fi
208
209
210# License
211
212 local copyright_file
213
214 copyright_file="$(find "$pkgdir/usr/share/doc" \
215 -type f \
216 -name copyright \
217 | head -n1)"
218
219 if [[ -n "$copyright_file" ]]; then
220 install -Dm644 "$copyright_file" \
221 "$pkgdir/usr/share/licenses/$pkgname/copyright"
222 fi
223}
224

Changes since previous scan

--- PKGBUILD @ 2026-07-26 00:07
+++ PKGBUILD @ 2026-08-03 00:08
@@ -1,7 +1,7 @@
# Maintainer: MojArch
pkgname=opera-developer
-pkgver=134.0.5952.0
+pkgver=135.0.5966.0
pkgrel=1
pkgdesc='Fast, secure, easy-to-use web browser (Developer Stream)'
arch=('x86_64')
@@ -58,7 +58,7 @@
'upower'
)
-_nwjs_ffmpeg_version=0.113.0
+_nwjs_ffmpeg_version=0.114.0
_upstream_deb_pkg='opera-developer'
_debfile="${_upstream_deb_pkg}_${pkgver}_amd64.deb"
_deburl="https://get.opera.com/pub/opera-developer/${pkgver}/linux/${_debfile}"
@@ -72,10 +72,10 @@
)
sha256sums=(
- '1c5179ce9aacafcba867db33d7861d1e9a2e7890e7d481ee036b3b6f4e1fe0ea'
+ 'b059a4241852cf013297c559881be9af2334f1651406641dd8d93e641872d690'
'508512464e24126fddfb2c41a1e2e86624bdb0c0748084b6a922573b6cf6b9c5'
'99fc0d2822edd14e234d451995db47148125e4580221a292598959421d131231'
- 'e5532d59117f527fc34f9f7af2aedf78719627fdf7b5527d84b2e71126764ec6'
+ 'eccac785a61f552d7ce75a1aba990486d977d74cd6ac78091c21b3c807cf1b01'
)
prepare() {

Scan history

Scanned at (UTC)SeverityRules
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 19:33:02 MEDIUM 2
2026-07-26 03:31:41 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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion