Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package heroic-games-launcher for 
openSUSE:Factory checked in at 2026-07-07 21:00:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/heroic-games-launcher (Old)
 and      /work/SRC/openSUSE:Factory/.heroic-games-launcher.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "heroic-games-launcher"

Tue Jul  7 21:00:39 2026 rev:16 rq:1363798 version:2.22.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/heroic-games-launcher/heroic-games-launcher.changes  
    2026-06-29 17:34:27.110447435 +0200
+++ 
/work/SRC/openSUSE:Factory/.heroic-games-launcher.new.1982/heroic-games-launcher.changes
    2026-07-07 21:02:21.732545636 +0200
@@ -1,0 +2,14 @@
+Sat Jul  4 00:49:47 UTC 2026 - Jonatas Gonçalves <[email protected]>
+
+- Apply security patches for embedded dependencies:
+  * Add extract-zip-cve-2026-56876.patch to fix path traversal via
+    malicious symlinks (bsc#1269757, CVE-2026-56876).
+  * Add inline sed patches in %build to mitigate electron-updater
+    credential leak (bsc#1269970, CVE-2026-54673).
+  * Add inline sed patches in %build to mitigate app-builder-lib
+    LD_LIBRARY_PATH hijack (bsc#1269968, CVE-2026-54672).
+  * Note: The electron-updater and AppImage vulnerabilities do not
+    affect the native RPM build at runtime, but the embedded code
+    is sanitized to comply with automated security scanners. 
+
+-------------------------------------------------------------------

New:
----
  extract-zip-cve-2026-56876.patch

----------(New B)----------
  New:- Apply security patches for embedded dependencies:
  * Add extract-zip-cve-2026-56876.patch to fix path traversal via
    malicious symlinks (bsc#1269757, CVE-2026-56876).
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ heroic-games-launcher.spec ++++++
--- /var/tmp/diff_new_pack.nDke7b/_old  2026-07-07 21:02:23.076591617 +0200
+++ /var/tmp/diff_new_pack.nDke7b/_new  2026-07-07 21:02:23.080591753 +0200
@@ -36,6 +36,7 @@
 Source1:        pnpm-offline-store.tar.gz
 Source2:        heroic-games-launcher.rpmlintrc
 Source3:        get-sources.sh
+Source4:        extract-zip-cve-2026-56876.patch
 BuildRequires:  comet
 BuildRequires:  c++_compiler
 BuildRequires:  esbuild
@@ -49,6 +50,7 @@
 BuildRequires:  nodejs-electron-devel
 BuildRequires:  openssl-devel
 BuildRequires:  pkgconfig
+BuildRequires:  pkgconfig(SPIRV-Tools) >= 2026.2
 BuildRequires:  pnpm
 BuildRequires:  protobuf-devel
 BuildRequires:  vulkan-devel
@@ -77,8 +79,7 @@
 Game launcher and manager for GOG, Epic Games, and Amazon
 
 %prep
-%autosetup -n %{name}-%{version}
-%setup -T -D -a1   # pnpm-offline-store
+%autosetup -n %{name}-%{version} -a1
 
 sed -i -e "s/Exec=heroic-run /Exec=heroic /" 
flatpak/com.heroicgameslauncher.hgl.desktop
 
@@ -113,6 +114,18 @@
 pnpm config set store-dir .pnpm-store
 export PNPM_STORE_DIR=.pnpm-store
 pnpm install --offline --store-dir .pnpm-store --frozen-lockfile 
--ignore-scripts --strict-peer-dependencies=false
+# Patch to fix CVE-2026-56876
+patch -p1 -d node_modules/.pnpm/[email protected]/node_modules/extract-zip/ < 
%{SOURCE4}
+# CVE-2026-54673: electron-updater (builder-util-runtime) Credential Leak
+for file in $(find node_modules/.pnpm -type f -path "*/out/httpExecutor.js" 
2>/dev/null); do
+    sed -i 's/delete options.headers.authorization/for(let k of 
Object.keys(options.headers)){let 
kl=k.toLowerCase();if(kl==="authorization"||kl==="private-token")delete 
options.headers[k]}/g' "$file"
+    sed -i 's/delete options.headers\["authorization"\]/for(let k of 
Object.keys(options.headers)){let 
kl=k.toLowerCase();if(kl==="authorization"||kl==="private-token")delete 
options.headers[k]}/g' "$file"
+done
+
+# CVE-2026-54672: app-builder-lib AppRun.sh LD_LIBRARY_PATH Hijack
+for file in $(find node_modules/.pnpm -type f -path 
"*/app-builder-lib/templates/linux/AppRun.sh" 2>/dev/null); do
+    sed -i 's/export 
LD_LIBRARY_PATH="${APPDIR}\/usr\/lib:${LD_LIBRARY_PATH}"/export 
LD_LIBRARY_PATH="${APPDIR}\/usr\/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"/g' 
"$file"
+done
 pnpm dist:linux %{arch_flag} --dir
 
 %ifarch aarch64

++++++ extract-zip-cve-2026-56876.patch ++++++
diff --git a/index.js b/index.js
index 
23384ea16bb848616886f356d8d69f94325535bf..cd34b79f62c1f4fd6d12b5c28d80cccbd46278d9
 100644
--- a/index.js
+++ b/index.js
@@ -125,7 +125,19 @@ class Extractor {
     const readStream = await 
promisify(this.zipfile.openReadStream.bind(this.zipfile))(entry)
 
     if (symlink) {
-      const link = await getStream(readStream)
+      let link = await getStream(readStream)
+      link = link.toString().trim()
+
+      // --- CVE-2026-56876 Fix ---
+      const symlinkDir = path.dirname(dest)
+      const absoluteTarget = path.resolve(symlinkDir, link)
+      const safeDir = this.opts.dir
+
+      if (!absoluteTarget.startsWith(safeDir + path.sep) && absoluteTarget !== 
safeDir) {
+        throw new Error(`Out of bound symlink target "${absoluteTarget}" found 
while processing symlink ${entry.fileName}`)
+      }
+      // --- END OF FIX ---
+
       debug('creating symlink', link, dest)
       await fs.symlink(link, dest)
     } else {

Reply via email to