Paper icon indicating copy to clipboard operation
Paper copied to clipboard

Block bungee bound plugin messages if we aren't behind a proxy

Open SergioK29 opened this issue 11 months ago • 7 comments

Is your feature request related to a problem?

Plugins will send bungee plugin messages, assuming they are behind a proxy which will intercept them, this can cause info leaks if the server for some reason isn't bungee

Describe the solution you'd like.

paper knows whether its behind a proxy, we should discard outgoing bungee plugin messages and perhaps warn to console if they aren't on backend, instead of sending to the players.

Describe alternatives you've considered.

using protocollib to block them?

Other

No response

SergioK29 avatar Dec 04 '24 13:12 SergioK29

Just tested, and seems like the plugin messages aren't sent? I can't find the code that is discarding it though.

ghost avatar Dec 04 '24 13:12 ghost

Its not really Papers responsibility to prevent plugins from doing stupid things. Plugins can themselves check if the server is running behind a proxy or not, and then simply not send such messages.

Malfrador avatar Dec 04 '24 13:12 Malfrador

The server won't send plugin messages to an unregistered channel, i.e. the only way those clients would get that info would be if their client specifically asked for it, in which case, you have malicious players.

I don't think that this is our role, maybe we should expose this state in the API to make it easier for plugins, but, this is one of those weird areas where we'd only be masking the issue for a bunch of plugins, it's not really our role to patchwork over security issues from other plugins

electronicboy avatar Dec 04 '24 13:12 electronicboy

Not to mention that plugin messaging is a perfectly valid way of communicating with client mods, and there are several plugins out there that do; if a plugin doesn't want to send a payload to the actual client it would be the plugin's responsibiltiy to check whether the server is connected to a proxy before sending the payload, API for that could be added, I don't think that exists right now

emilyy-dev avatar Dec 04 '24 13:12 emilyy-dev

Its not really Papers responsibility to prevent plugins from doing stupid things. Plugins can themselves check if the server is running behind a proxy or not, and then simply not send such messages.

I can assure you that approximately 0 plugins currently, or ever will do this.

ghost avatar Dec 04 '24 21:12 ghost

Its not really Papers responsibility to prevent plugins from doing stupid things. Plugins can themselves check if the server is running behind a proxy or not, and then simply not send such messages.

I can assure you that approximately 0 plugins currently, or ever will do this.

Does not mean it's Paper's responsibility to fix a plugin issue, it isn't really viable without sacrificing the plugins that do intend to communicate with clients. If anything, stable API for checking whether the server is behind a proxy should be added, and the documentation on using plugin messages altered to mention and account for that.

emilyy-dev avatar Dec 04 '24 21:12 emilyy-dev

Its not really Papers responsibility to prevent plugins from doing stupid things. Plugins can themselves check if the server is running behind a proxy or not, and then simply not send such messages.

I can assure you that approximately 0 plugins currently, or ever will do this.

Does not mean it's Paper's responsibility to fix a plugin issue, it isn't really viable without sacrificing the plugins that do intend to communicate with clients. If anything, stable API for checking whether the server is behind a proxy should be added, and the documentation on using plugin messages altered to mention and account for that.

why would a plugin use bungee namespace to communicate with clients? impossible.

ghost avatar Dec 04 '24 21:12 ghost

Going to close this after some further discussion. Most plugins provide a configuration option to enable their proxy features, or check for the presence of such a setup themselves. Its not Papers responsibility to prevent issues with wrongly configurated plugins, or to fix badly implemented plugins.

However, adding API that makes checking for a proxy setup easier is something that could be PR'ed to Paper.

Malfrador avatar Jan 12 '25 18:01 Malfrador