[Bug]: VBoxClient clipboard conflicts with XRDP clipboard in Linux guests

Aberta
#926 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 6 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
42/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
c, linux
Domínio
desktop

Direção de pesquisa

Start by reading /etc/X11/Xsession.d/98vboxadd-xclient and /etc/xdg/autostart/vboxclient.desktop, the two startup paths named in the report, and trace how Guest Additions handle XRDP sessions. The workaround reports that suppressing VBoxClient in XRDP restores clipboard transfers and the XFCE wallpaper. Done means XRDP clipboard redirection works without disrupting the session, while local X11 startup remains available.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
Version

7.2.20

Host OS Type

Linux

Host OS name + version

Lubuntu 24.04.3

Host Architecture

x86

Guest OS Type

Linux

Guest Architecture

x86

Guest OS name + version

Ubuntu 22.04.3

Component

Guest Additions/Shared Clipboard

What happened?

Environment

VirtualBox host OS: Lubuntu 24.04 (Linux)

VirtualBox host version: 7.2.20

Guest OS: Linux with XFCE desktop and XRDP

Guest Additions tested: 7.0.14 and 7.2.20

RDP client: FreeRDP (xfreerdp)

Guest networking: VirtualBox NAT with TCP port forwarding (host 127.0.0.1:3390 → guest port 3389)

The host itself is accessed remotely from Windows, resulting in the following connection chain:

Windows (MSTSC) → Lubuntu host (XRDP) → FreeRDP → VirtualBox Linux guest (XRDP)

Problem

When connecting to the Linux VirtualBox guest via XRDP with clipboard redirection enabled (+clipboard), clipboard synchronization becomes unreliable or stops working.

Observed symptoms:

Copy/paste between the RDP client and the Linux guest fails or hangs.

Clipboard synchronization can also affect the upstream RDP connection between Windows and the Linux host.

Windows applications using the clipboard (e.g. Notepad++) may become unresponsive.

The XFCE desktop wallpaper in the guest disappears and the desktop background becomes black.

Disabling RDP clipboard redirection (-clipboard) prevents these symptoms, but clipboard sharing is then unavailable.

The problem was reproduced using VirtualBox 7.2.20 on the host, with both Guest Additions 7.0.14 and 7.2.20 in the guest.

Updating the Guest Additions to match the host version did not resolve the problem.

Suspected cause

VirtualBox Guest Additions automatically start VBoxClient --clipboard inside the XRDP X11 session.

At the same time, XRDP starts xrdp-chansrv, which provides its own clipboard synchronization.

Both components therefore attempt to manage clipboard operations within the same X11 session.

Two VirtualBox autostart mechanisms were identified:

/etc/X11/Xsession.d/98vboxadd-xclient

/etc/xdg/autostart/vboxclient.desktop (starts VBoxClient-all)

The X11 startup script excludes SSH sessions but does not exclude XRDP sessions.

How can we reproduce this?

Steps to reproduce

Install a Linux guest with XFCE and XRDP in VirtualBox 7.2.20.

Install VirtualBox Guest Additions (tested with 7.0.14 and 7.2.20).

Configure VirtualBox NAT port forwarding for XRDP (host port 3390 → guest port 3389).

Connect using FreeRDP with clipboard redirection enabled:

xfreerdp /v:127.0.0.1:3390 /u:xuser /cert:ignore +clipboard

Check for VBoxClient processes inside the XRDP session.

Test clipboard transfers between the guest, the host and the upstream Windows client.

Confirmed workaround

Prevent VirtualBox's clipboard client from starting inside XRDP sessions while keeping XRDP clipboard redirection enabled.

  1. Mark XRDP sessions

In /etc/xrdp/startwm.sh, before starting XFCE:

export XRDP_SESSION=1
startxfce4

  1. Modify the VirtualBox X11 startup script

In /etc/X11/Xsession.d/98vboxadd-xclient, change:

elif test -z "${SSH_CONNECTION}"; then

to:

elif test -z "${SSH_CONNECTION}" && [ -z "${XRDP_SESSION}" ]; then

This prevents VBoxClient from being started by this script in XRDP sessions while preserving its startup in local X11 sessions.

  1. Disable the additional desktop autostart

Create a user-specific override:

mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/vboxclient.desktop ~/.config/autostart/
echo 'Hidden=true' >> ~/.config/autostart/vboxclient.desktop

This disables the additional VBoxClient-all desktop autostart for the affected user.

Results after applying the workaround

No VBoxClient processes are started inside the XRDP session.

Clipboard redirection with FreeRDP +clipboard works correctly.

Copy/paste works across the complete connection chain: Windows ↔ Linux host ↔ VirtualBox guest.

The XFCE wallpaper remains visible.

The workaround continues to work after rebooting the guest.

The workaround works with both Guest Additions 7.0.14 and 7.2.20.

Reverting from Guest Additions 7.2.20 to 7.0.14 after applying the workaround did not reintroduce the problem.

This indicates that the issue is related to VBoxClient startup and clipboard interaction rather than a mismatch between the VirtualBox host and Guest Additions versions.

Suggested improvement

VirtualBox Guest Additions should detect XRDP sessions and avoid automatically starting VBoxClient --clipboard when XRDP already provides clipboard redirection.

Alternatively, the Guest Additions startup scripts should provide a documented mechanism for excluding XRDP sessions.

Note: The conflict between VBoxClient and XRDP clipboard handling is strongly suggested by the successful workaround. The exact internal failure mechanism has not yet been isolated.

Did you upload all of your necessary log files, screenshots, etc.?
  • Yes, I've uploaded all pertinent files to this issue.
Linguagem predominante
C
Estrelas
1.4k
Forks
219
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de VirtualBox/virtualbox

Todas as issues de VirtualBox/virtualbox

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.