T03 · Remote Payload Retrieval and Execution
Error
- Location
- references/peekaboo-and-rdp-setup-ubuntu-gnome-wayland.md:49
- Finding
- Unpinned Remote GNOME Shell Extensions Are Retrieved and Executed<![CDATA[ ## Vulnerability Details **File Location**: `references/peekaboo-and-rdp-setup-ubuntu-gnome-wayland.md:49-59`; also `SKILL.md:83-89` **Vulnerability Type**: Mutable remote payload retrieval and supply-chain exposure **Risk Level**: High ### Vulnerable Code ```bash D=~/.local/share/gnome-shell/extensions/allow-gnome-screenshot@siddh.me git clone --depth 1 https://github.com/siddhpant/allow-gnome-screenshot.git /tmp/ags mkdir -p "$D" && cp -r /tmp/ags/allow-gnome-screenshot@siddh.me/* "$D/" ``` ```bash D=~/.local/share/gnome-shell/extensions/window-calls@domandoman.xyz git clone --depth 1 https://github.com/ickyicky/window-calls.git /tmp/wc mkdir -p "$D" && cp /tmp/wc/extension.js /tmp/wc/metadata.json "$D/" ``` The primary Skill instructions contain the same unsafe installation pattern: ```bash sudo apt-get install -y gnome-screenshot D=~/.local/share/gnome-shell/extensions/allow-gnome-screenshot@siddh.me git clone --depth 1 https://github.com/siddhpant/allow-gnome-screenshot.git /tmp/ags mkdir -p "$D" && cp -r /tmp/ags/allow-gnome-screenshot@siddh.me/* "$D/" sudo systemctl restart gdm3 gnome-extensions enable allow-gnome-screenshot@siddh.me ``` ### Technical Analysis The setup retrieves code from mutable default branches and immediately installs it as GNOME Shell extensions. No immutable commit hash, signed release, checksum, vendored source, or manual verification step is used. A future clone may therefore retrieve code different from the code reviewed when this Skill was audited. GNOME Shell extensions execute inside the desktop Shell context and can interact with sensitive desktop facilities. These particular extensions are deliberately granted or expose screenshot and window-management capabilities, making upstream compromise especially consequential. The behavior is related to the declared functionality, but retrieving mutable code exceeds the minimum safe installation method. The same features can be installed from reviewed, immutable re ...[truncated 1247 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin each repository to an audited immutable commit: ```bash git clone https://github.com/example/project.git /tmp/project git -C /tmp/project checkout --detach '<audited-commit-sha>' test "$(git -C /tmp/project rev-parse HEAD)" = '<audited-commit-sha>' ``` 2. Prefer signed release tags and verify the signature against a documented maintainer key. 3. Publish and verify SHA-256 hashes for every installed extension file. 4. Vendor reviewed extension sources into the Skill package where licensing permits. 5. Do not copy or enable an extension until its JavaScript and metadata have been reviewed. 6. Document the exact audited extension versions rather than references such as `master`. 7. Limit enabled extensions to the dedicated automation account and provide explicit disable/uninstall commands. ]]>
