BUG Report - NoVNC Konsole / VNCproxy ein User sieht Konsole vom anderen User

derawa

New Member
Jul 10, 2021
3
0
1
Hamburg
Hallo,

in Proxmox 6.3-6 waren mehrere unterschiedliche Proxmox VE User gleichzeitig in der Konsole aktiv. Durch Zufall hat einer der User in der geöffneten Konsole den Bildschirm einer fremdem VM zu sehen bekommen (durch Screenshots belegt). Mit einem refresh war wieder der Bildschirm der korrekten VM in der Konsole zu sehen. Die Logindaten des anderen sind nicht bekannt (Cookie Problem somit ausgeschlossen). Jeder User hat jeweils nur zu einer bestimmten VM die permissions mit den üblichen Rechten (VM.Audit VM.Backup VM.Config.CDROM VM.Config.Cloudinit VM.Console VM.PowerMgmt).

Sowas hinterlässt einen bitteren Beigeschmack. Ich hoffe mit einem Update auf die neuere Proxmox Version passiert sowas nicht nochmal.
 
In der Log Datei sieht man, dass die Person von einem auf den anderen Moment einen anderen Username benutzt und die Konsole der anderen VM offen hat. Das ganze passiert ohne das sich die Person neu eingelogt, bzw ohne dass in der Log ein Login zu sehen ist mit anderem User. Anhand der IP-Adresse der Person ist dies eindeutig nachzuverfolgen.
 
mhmm... das klingt erstmal sehr merkwürdig und is natürlich nicht das normale verhalten,
und vom code her kann ich nicht sehen wie sowas passieren könnte...

kannst du die screenshot (natürlich anonymisiert, aber bitte nicht zusehr, vmid sollte schon zu sehen sein) hier posten?
kannst du auch das syslog, sowie das access log von dem zeitraum posten ? (/var/log/pveproxy/access.log*)

ist irgendein system davorgeschalten? zb reverseproxy wie nginx/haproxy etc?

auch interessant wären die vm configs der beteiligten vms
 
wir haben einen reverse-proxy apache server davor sitzen, seine config:



Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder On SSLProtocol -ALL +TLSv1.2 +TLSv1.3 RewriteEngine On ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off ProxyRequests Off ProxyPreserveHost On RequestHeader unset Accept-Encoding RewriteCond %{HTTP:Upgrade} =websocket RewriteRule /(.*) wss://localhost:8006/$1 [P,L] ProxyPass / [URL]https://localhost:8006/[/URL] ProxyPassReverse / [URL]https://localhost:8006/[/URL] ProxyPass / wss://localhost:8006/ ProxyPassReverse / wss://localhost:8006/










die relevanten und anonymisierten logs aus der proxmox access.log (die syslog hat
keinerlei relevante einträge enthalten):



127.0.0.1 - 12xx00@pve [10/07/2021:14:43:29 +0200] "GET /api2/json/nodes/prox09/qemu/234/status/current HTTP/1.1" 200 2739 127.0.0.1 - root@pam [10/07/2021:14:43:29 +0200] "GET /api2/json/cluster/resources HTTP/1.1" 200 158774 127.0.0.1 - 12xx00@pve [10/07/2021:14:43:29 +0200] "GET /api2/json/cluster/tasks HTTP/1.1" 200 1113 127.0.0.1 - root@pam [10/07/2021:14:43:29 +0200] "GET /api2/json/nodes/prox06/qemu/457/status/current HTTP/1.1" 200 2704 127.0.0.1 - root@pam [10/07/2021:14:43:29 +0200] "GET /api2/json/nodes/prox01/tasks/UPID:prox01:00189B09:3408A95E:60E9876C:vncproxy:457:12xx06@pve:/status HTTP/1.1" 200 223 127.0.0.1 - 12xx41@pve [10/07/2021:14:43:29 +0200] "GET /api2/json/cluster/resources HTTP/1.1" 200 9358 127.0.0.1 - root@pam [10/07/2021:14:43:29 +0200] "GET /api2/extjs/nodes/prox01/tasks/UPID:prox01:00189B09:3408A95E:60E9876C:vncproxy:457:12xx06@pve:/log?_dc=1625921008873&start=0&limit=500 HTTP/1.1" 200 57 127.0.0.1 - 12xx06@pve [10/07/2021:14:43:29 +0200] "GET /api2/json/nodes/prox06/qemu/457/status/current HTTP/1.1" 200 2704




einträge in der apache access.log:


88.73.x.x - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/cluster/tasks HTTP/1.1" 200 575 84.203.x.x - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/nodes/prox06/qemu/479/status/current HTTP/1.1" 200 3133 88.73.x.x - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/nodes/prox06/qemu/303/status/current HTTP/1.1" 200 3130 2a02:908:f86:xxxxxxxxx - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/cluster/resources HTTP/1.1" 200 9095 79.249.x.x - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/nodes/prox09/qemu/234/status/current HTTP/1.1" 200 3138 84.203.x.x - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/cluster/resources HTTP/1.1" 200 9779 2003:e3:af1b:xxxxxxxxx - - [10/Jul/2021:14:43:28 +0200] "GET /api2/json/cluster/resources HTTP/1.1" 200 159593 79.249.x.x - - [10/Jul/2021:14:43:29 +0200] "GET /api2/json/cluster/tasks HTTP/1.1" 200 2050 2003:e3:af1b:xxxxxxxxx - - [10/Jul/2021:14:43:29 +0200] "GET /api2/json/nodes/prox06/qemu/457/status/current HTTP/1.1" 200 3103 2003:e3:af1b:xxxxxxxxx - - [10/Jul/2021:14:43:29 +0200] "GET /api2/json/nodes/prox01/tasks/UPID%3Aprox01%3A00189B09%3A3408A95E%3A60E9876C%3Avncproxy%3A457%3A124906%40pve%3A/status HTTP/1.1" 200 599 2003:e3:af1b:xxxxxxxxx - - [10/Jul/2021:14:43:29 +0200] "GET /api2/extjs/nodes/prox01/tasks/UPID%3Aprox01%3A00189B09%3A3408A95E%3A60E9876C%3Avncproxy%3A457%3A124906%40pve%3A/log?_dc=1625921008873&start=0&limit=500 HTTP/1.1" 200 432 2a02:908:f86:xxxxxxxxx - - [10/Jul/2021:14:43:29 +0200] "GET /api2/json/nodes/prox06/qemu/457/status/current HTTP/1.1" 200 3103 88.73.x.x - - [10/Jul/2021:14:43:30 +0200] "GET /api2/json/nodes/prox06/qemu/303/status/current HTTP/1.1" 200 3131 2003:e3:af1b:xxxxxxxxx - - [10/Jul/2021:14:43:30 +0200] "GET /api2/json/nodes/prox01/tasks/UPID%3Aprox01%3A00189B09%3A3408A95E%3A60E9876C%3Avncproxy%3A457%3A124906%40pve%3A/status HTTP/1.1" 200 599 2003:e3:af1b:xxxxxxxxx - - [10/Jul/2021:14:43:30 +0200] "GET /api2/extjs/nodes/prox01/tasks/UPID%3Aprox01%3A00189B09%3A3408A95E%3A60E9876C%3Avncproxy%3A457%3A124906%40pve%3A/log?_dc=1625921009882&start=0&limit=500 HTTP/1.1" 200 432
 
Last edited:
hi,

der teil der apache config ist mal soweit unauffällig bis vielleicht auf diesen part hier:
ProxyPreserveHost On

sieht irgendwie falsch aus, weil er ja den 'Host' header vom client weiterreicht?

die syslog hat
keinerlei relevante einträge enthalten
könntest du es trotzdem posten? vielleicht sehen wir ja was ungewöhnliches das nicht offensichtlich ist..

die access logs enthalten leider nicht wirklich infos, da kein einziger vncproxy/websocket call enthalten ist
(nur die zugriffe auf die task logs)
 
Das "alte" Inhalte kurz angezeigt werden kenne ich schon lange. Ist übrigens auch bei Anydesk so, auch wenn da vielleicht kein Zusammenhang besteht.
 
Das "alte" Inhalte kurz angezeigt werden kenne ich schon lange. Ist übrigens auch bei Anydesk so, auch wenn da vielleicht kein Zusammenhang besteht.
ich glaube nicht, dass das das problem ist. es hört sich eher so an als wären die sessions verwirrt. da wir aber keine persistenten sessions im pve haben,
vermute ich dass der reverse proxy irgendeine falsche option gesetzt hat. ist schon oft (auch größeren seiten) passiert, dass durch falsche option im reverse proxy user falsche sessions bekommen haben
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!