[SOLVED] ProxmoxVE webinterface displaying detailed version to unauthenticated users!

Frazze

Member
Feb 24, 2012
53
0
6
Hey,

I have been using ProxmoxVE now for a while and you've done a fantastic job, thanks for creating such a great project!


I just noticed one thing:
Not a big thing, but currently the Proxmox webinterface shows the detailed version running to everybody, even unauthenticated users on the webinterface login screen.
I think this isn't that smart regarding security as it gives away some information if a system has been patched or not etc. and therefore can reveal sensitive informations to a possible attacker.

Screenshot of the information "leak":
screenshot.png

Yes, I know, you should always keep your systems updated etc., but it has become comon sense to NOT display such detailed version informations to the public anymore if not absolutly needed (take all the CMS-, forum-, blog-, software on the internet as an example. Most of them won't show their currently running version to the public anymore (for good reason) to make life harder for attackers).

After all this wouldn't be very hard to fix and could help improve security a bit. Maybe you could change this behaviour in your next release ;)


Best regards and thanks again!


##EDIT 2: Dietmar has provided an official patch, check one of the last posts!!


# EDIT:
If someone does not want to wait until this gets changed (if it gets changed), you can change this behavior by yourself quite easy:
Edit /usr/share/pve-manager/root/index.pl file:
Find (~ line 45):
Code:
my $version = PVE::pvecfg::version_text();

Add "#" (comment out) infront of the above line, and add the following line below it:
Code:
my $version = "Whatever_you_may_want_to_add_here";
Adjust the string of $version to your liking.


The index.pl file should look like this now:
Code:
...
...

    if (($username = PVE::AccessControl::verify_ticket($ticket, 1))) {
        $token = PVE::AccessControl::assemble_csrf_prevention_token($username);
    }
}
#my $version = PVE::pvecfg::version_text();
my $version = "Whatever_you_may_want_to_add_here";
$username = '' if !$username;

my $cgi = CGI->new($r);
my %args =  $cgi->Vars();

...
...


Note: If you're logged in you still will see whatever you have defined as $version on the top left part of the webinterface. If you want to know what version you're really running you have to go to the "Summary" tab of your node. Maybe this could be changed if Proxmoxteam decides to fix this.
 
Last edited:
Proxmox VE is not a public interface - users need to log in, and traffic is encrypted with SSL.
 
Proxmox VE is not a public interface
You mean it is (or should) not run on a public interface? Or what did you mean by that answer? Doesn't make much sense.
And there are situations where it might have to run on a public interface (you could add something like VPN protection etc. but thats not the point and can't be the solution).

users need to log in, and traffic is encrypted with SSL
This again is no answer related to what I posted earlier. Users don't need to be logged in to see what version you're running and I am quite sure there are users (and the bad boys too) capable of using a browser with SSL enabled :rolleyes:


Anyways, I edited my starting post and added a possible fix for people who'd like to change this behavior.


I still consider this as something that should be changed in a future release.
 
you should protect the admin interface via firewall, you should not allow public/internet access here.
 
you should protect the admin interface via firewall, you should not allow public/internet access here.

Yes, it would be the best thing to do, BUT:
I am running Proxmox on a dedicated root server which is connected directly to the internet and rented at a datacenter. I want/need to have access to the webinterface and ssh from everywhere (don't have a static IP and I am not always on the same network).
So there is no reasonable firewall I can use to protect the webinterface. (Ok, I COULD add knockd daemon (or VPN), but really thats overkill and a very unsatisfying solution regarding usability).
I am using fail2ban to stop bruteforce attacks on the webinterface.

And even if you run it on a private interface, let's say LAN, you still leak the version information to everybody on that interface (i.e. "internal attacker"). It's just comon practice to NOT display this sort of information to _unauthenticated_ users. The probem is not the interface, but the fact that you provide detailed version information to _unauthenticated_ users. Just something you don't want to do IMHO.....
 
The probem is not the interface, but the fact that you provide detailed version information to _unauthenticated_ users. Just something you don't want to do IMHO.....

Oh, I missed the fact that it is displayed before the user is authenticated. Thanks for the report!
 
WOW that was fast, thanks!!!!!

If an administrator/moderator could / wants to change the topic or prefix to [SOLVED], because I can't find where out where to do so myself :\
 

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!