Skip to content

egpu-switch 0.3.4: final release (security fixes, discontinued)

Latest

Choose a tag to compare

@TiPSilva TiPSilva released this 05 Oct 11:35

This is the last release of egpu-switch. The project continues as
Yby eGPU, which provides GPU switching
and safe eject without depending on all-ways-egpu, plus a desktop app and
additional controls. Its installer removes egpu-switch from Decky. Update
to 0.3.4 if you still use egpu-switch, then migrate to Yby eGPU.

Security fixes

  • High: a user-writable file was executed as root. The plugin runs as root
    and executed all-ways-egpu from ~/bin (and from any user's
    /home/*/bin) every few seconds. Any program running as a user could
    replace that file and gain root without a password. The plugin, and the
    shutdown hook in extras/, now only run all-ways-egpu when the file and
    every folder above it belong to root and nobody else can write to them.
    If yours is in ~/bin, the panel shows a command to install it
    for the whole system.
  • Medium: root followed a link when saving settings. settings.json
    lives in a folder the user owns; replacing it with a link made root
    overwrite arbitrary system files, and the settings screen could read any
    JSON file. Settings are now read and written without following links,
    through a temporary file, and only the two known options are kept.
  • Low: fixed file names in /tmp. The shutdown hook wrote its errors to
    predictable files in /tmp as root. It no longer uses /tmp.
  • Low: Deep rescan could pick a bridge in another PCI domain. On
    machines with more than one PCI domain it could reset the wrong bridge. It
    now matches the domain too.

These issues were identified during the review for the Yby eGPU release.

Português (Brasil)

Esta é a última versão do egpu-switch. O projeto continua como
Yby eGPU, que mantém a troca de GPU e
a ejeção segura, acrescenta um app do desktop e outros controles, e não
depende do all-ways-egpu. O instalador remove o egpu-switch do Decky durante
a migração. Se você ainda usa o plugin antigo, atualize para a 0.3.4 e
depois migre para o Yby eGPU.

  • Alta: o root executava um arquivo que o usuário podia alterar. O
    plugin roda como root e executava o all-ways-egpu de ~/bin (e do
    /home/*/bin de qualquer usuário) a cada poucos segundos. Qualquer
    programa do usuário podia substituir esse arquivo e obter privilégios de root sem senha.
    Agora o plugin e o gancho de desligamento em extras/ só executam o
    all-ways-egpu quando o arquivo e todas as pastas acima dele pertencem ao root e
    não permitem escrita por outros usuários. Se o seu estiver em ~/bin, o painel mostra
    o comando para instalar em um diretório do sistema.
  • Média: o root seguia um link ao salvar as configurações. O
    settings.json fica numa pasta do usuário; substituí-lo por um link simbólico fazia o
    root sobrescrever qualquer arquivo do sistema, e a tela de configurações
    podia ler qualquer arquivo JSON. Agora as configurações são lidas e
    gravadas sem seguir links simbólicos. A gravação usa um arquivo
    temporário, e apenas as duas opções reconhecidas são mantidas.
  • Baixa: nomes fixos em /tmp. O gancho de desligamento gravava erros
    em arquivos previsíveis no /tmp como root. Não usa mais o /tmp.
  • Baixa: a Busca profunda podia escolher uma ponte de outro domínio PCI.
    A busca agora também confere o domínio PCI.
Español

Esta es la última versión de egpu-switch. El proyecto continúa como
Yby eGPU, que mantiene el cambio de GPU y
la expulsión segura, añade una app de escritorio y otros controles, y no
depende de all-ways-egpu. Su instalador retira egpu-switch de Decky. Si aún
usas el plugin antiguo, actualiza a la 0.3.4 y después migra a Yby eGPU.

  • Alta: root ejecutaba un archivo que el usuario podía cambiar. El
    plugin se ejecuta como root y ejecutaba all-ways-egpu desde ~/bin (y
    desde el /home/*/bin de cualquier usuario) cada pocos segundos.
    Cualquier programa del usuario podía sustituir ese archivo y obtener root
    sin contraseña. Ahora el plugin y el gancho de apagado de extras/ solo
    ejecutan all-ways-egpu cuando el archivo y todas las carpetas por encima
    pertenecen a root y nadie más puede modificarlos. Si el tuyo está en
    ~/bin, el panel muestra el comando para instalarlo en un directorio del
    sistema.
  • Media: root seguía un enlace al guardar los ajustes. settings.json
    está en una carpeta del usuario; sustituirlo por un enlace hacía que root
    sobrescribiera cualquier archivo del sistema, y la pantalla de ajustes
    podía leer cualquier archivo JSON. Ahora los ajustes se leen y escriben sin
    seguir enlaces, mediante un archivo temporal, y solo se conservan las dos
    opciones conocidas.
  • Baja: nombres fijos en /tmp. El gancho de apagado escribía errores
    en archivos predecibles de /tmp como root. Ya no usa /tmp.
  • Baja: la búsqueda profunda podía elegir un puente de otro dominio PCI.
    Ahora comprueba también el dominio.
简体中文

这是 egpu-switch 的最后一个版本。 项目以
Yby eGPU 的形式继续,它保留了
egpu-switch 的 GPU 切换和安全弹出功能,增加了桌面应用等功能,并且不再依赖
all-ways-egpu。安装程序会把
egpu-switch 移出 Decky。正在使用 egpu-switch 的用户请立即更新到 0.3.4,并迁移
到 Yby eGPU。

  • 高危:root 会执行用户可修改的文件。 插件以 root 身份运行,每隔几秒就会从
    ~/bin(以及任意用户的 /home/*/bin)执行 all-ways-egpu。任何以用户身份
    运行的程序都能替换该文件并无需密码获得 root 权限。现在插件以及 extras/ 中的
    关机钩子,只有在该文件及其所有上级目录都属于 root 且他人无法写入时才会执行
    all-ways-egpu。如果你的文件在 ~/bin,面板会显示将其安装到系统范围的命令。
  • 中危:root 保存设置时会跟随链接。 settings.json 位于用户拥有的目录中;
    将其替换为链接会让 root 覆盖系统中的任意文件,设置界面也能读取任意 JSON
    文件。现在读写设置时不跟随链接,通过临时文件写入,并且只保留两个已知选项。
  • 低危:/tmp 中的固定文件名。 关机钩子以 root 身份把错误写入 /tmp 中
    可预测的文件。现在不再使用 /tmp。
  • 低危:深度重新扫描可能选中其他 PCI 域的桥。 现在也会核对域。
Français

Ceci est la dernière version d'egpu-switch. Le projet continue sous le
nom Yby eGPU, qui conserve le basculement
de GPU et l'éjection sûre, ajoute une application de bureau et d'autres
commandes, sans dépendre d'all-ways-egpu. Son installateur retire
egpu-switch de Decky. Si vous utilisez egpu-switch, mettez à jour vers la
0.3.4 maintenant, puis passez à Yby eGPU.

  • Élevée : root exécutait un fichier modifiable par l'utilisateur. Le
    plugin tourne en root et exécutait all-ways-egpu depuis ~/bin (et
    depuis le /home/*/bin de n'importe quel utilisateur) toutes les quelques
    secondes. N'importe quel programme de l'utilisateur pouvait remplacer ce
    fichier et obtenir root sans mot de passe. Le plugin et le hook
    d'extinction dans extras/ n'exécutent désormais all-ways-egpu que si le
    fichier et tous les dossiers au-dessus appartiennent à root et que
    personne d'autre ne peut les modifier. Si le vôtre est dans ~/bin, le
    panneau affiche la commande pour l'installer dans un répertoire système.
  • Moyenne : root suivait un lien en enregistrant les paramètres.
    settings.json se trouve dans un dossier de l'utilisateur ; le remplacer
    par un lien faisait écraser par root n'importe quel fichier du système, et
    l'écran des paramètres pouvait lire n'importe quel fichier JSON. Les
    paramètres sont désormais lus et écrits sans suivre de lien, via un
    fichier temporaire, et seules les deux options connues sont conservées.
  • Faible : noms de fichiers fixes dans /tmp. Le hook d'extinction
    écrivait ses erreurs dans des fichiers prévisibles de /tmp en root. Il
    n'utilise plus /tmp.
  • Faible : la recherche approfondie pouvait choisir un pont d'un autre
    domaine PCI.
    Elle vérifie désormais aussi le domaine.

Download: egpu-switch.zip below (Decky: Settings, Developer, Install Plugin from ZIP File).