Luanti logo

IRC log for #luanti-dev, 2025-02-10

| Channels | #luanti-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:00 TheCoffeMaker joined #luanti-dev
00:04 TheCoffeMaker joined #luanti-dev
01:37 MTDiscord joined #luanti-dev
02:14 cranez joined #luanti-dev
02:16 cranez left #luanti-dev
02:16 mtdeveloper joined #luanti-dev
02:36 mtdeveloper left #luanti-dev
03:05 cranez joined #luanti-dev
04:03 SFENCE_arch joined #luanti-dev
04:12 SFENCE joined #luanti-dev
04:18 SFENCE From crash log and lldb, it looks like crash in luajit lj_vm_cpuid fuction.
04:18 SFENCE @sfan5 *
04:51 SFENCE Same problem if I build Luanti 5.10.0 for x86_64 now.
05:00 MTDiscord joined #luanti-dev
05:18 SFENCE joined #luanti-dev
06:44 BuckarooBanzai joined #luanti-dev
06:50 Thomas-S joined #luanti-dev
06:50 Thomas-S joined #luanti-dev
07:34 SFENCE joined #luanti-dev
07:57 hwpplayer1 joined #luanti-dev
07:58 sfan5 that does sound like a luajit bug
09:58 hwpplayer1 joined #luanti-dev
11:15 ROllerozxa sfan5: someone is vandalising the serverlist
11:17 ROllerozxa (they're currently bragging about it on the discord)
11:18 sfan5 are schools on vacation again
11:21 ROllerozxa lol, probably
11:26 hwpplayer1 joined #luanti-dev
13:22 Desour joined #luanti-dev
14:09 MTDiscord <astra008.> I was not bragging, my was of expression was not right. I deleted a few messages and edited some. The thing I learned is that I should think before writing ✍️
14:58 SFENCE joined #luanti-dev
14:59 SFENCE_arch joined #luanti-dev
15:20 siliconsniffer joined #luanti-dev
15:34 SFENCE joined #luanti-dev
16:01 SFENCE joined #luanti-dev
17:30 Desour joined #luanti-dev
17:39 SFENCE @sfan5 I would not say luajit bug for sure. It happens also with same version of luajit, I used for compilation of Luanti 5.10.0.
17:58 ROllerozxa sfan5: what happened with the deprecation phase for this in the serverlist: https://github.com/luanti-org/serverlist/blob/master/server.py#L459
17:58 ROllerozxa maybe I should take this privately but the pandora's box seems to be wide open now and I suspect that's what is being exploited
18:01 celeron55 there's a discussion about that... well, i've lost the link, but if the kids are going to do this, then obviously there will be a response, and the response won't be nice to everyone. some legit servers are invalid with that check
18:01 MTDiscord <luatic> yep
18:02 MTDiscord <bastrabun> Which ones? Can't we just tell them and have them fix whatever misconfiguration causes this invalidity?
18:03 celeron55 i recall it appears some indeed can fix it, but some can't, mainly the ones using a proxy server
18:04 MTDiscord <warr1024> To know which ones, you might have to record that information for analysis on the server list itself.
18:04 celeron55 we need the link
18:04 MTDiscord <luatic> i mean, even fixing the impersonation issue, e.g. by asking the server to verify the announce, or checking the IP from which the request came, doesn't suffice to fix the problem of people being able to spam the serverlist with fresh announces with fake data which will get high scores
18:04 celeron55 https://github.com/orgs/luanti-org/discussions/125
18:04 MTDiscord <warr1024> An IP address is not a very good authentication mechanism.
18:04 celeron55 sfan5 published the list there
18:05 celeron55 (that is the link i was referring to)
18:05 MTDiscord <luatic> celeron55: that discussion is private btw
18:05 MTDiscord <warr1024> 404 link
18:07 celeron55 well that's another problem entirely
18:07 celeron55 should there be a team on github with miscellaneous people in it that should have access to the org discussions?
18:08 celeron55 anwyay, it's true that this won't prevent everything
18:09 celeron55 it's stupid that the kids think they're smart and they're using an exploit we didn't think of
18:10 celeron55 it's well known and intentionally left like that, to the benefit of users
18:11 MTDiscord <warr1024> The ability of somebody to announce from a different IP address is a feature; the ability to announce against the server owner's will and alter the metadata is a design flaw.
18:11 MTDiscord <warr1024> Using something like a single-use token or a zero-knowledge proof or something for the ping to verify the announcement metadata would be a safer way to handle this.
18:12 celeron55 well that is true
18:12 MTDiscord <warr1024> Or just have the announce HTTP request contain ONLY the address info, and ask the server for the metadata (and confirmation it wants to be listed) in the ping itself, via like an "ANNOUNCE_METADATA" packet or something that returns the JSON string in a packet if announce is enabled.
18:12 celeron55 so you're suggesting the announce should contain a token, and when the serverlist pings a server, it should include the token and ask "is this yours?"
18:13 celeron55 sfan5: you probably should give your opinion on this
18:33 sfan5 workable, but won't fix the problem unless we drop compatibility. also who will implement it?
18:36 MTDiscord <warr1024> I guess for the compatibility thing, we could go with IP address matching as the fallback.  I don't like it (IP addresses are not to be trusted) but it'd be a reasonable mitigation.
18:37 MTDiscord <warr1024> So like, a server verification thing would work for like 5% of people who early adopt, IP matching would catch like 90% of people who don't, and the last few who are on weird setups where their IPs don't match would at least have an option to adopt the protocol changes to make it work.
18:38 MTDiscord <warr1024> If they're really insistent on running an older version or something, then I suppose they'd just have to care enough to backport it.
18:41 celeron55 so what the serverlist should do is to check if the announce is supplying the token. if not, check the ip. if it gives a token, use the token to ask the server. the logic makes sense, but of course has to be implemented before it can exist
18:43 jonadab You could of course implement the check, announce that old versions without the check (or a backport thereof) will become unsupported at some specific point in the future, and leave the problem unsolved ad interim.
18:44 jonadab And by "unsupported" here we only mean unsupported by the main serverlist.
18:45 jonadab People who know the server's address, or obtain it in some other way, would still be able to connect.
18:45 jonadab And yes, the IP check as a fallback is still compatible with this.
18:47 jonadab My inclination would be to make the specific point in the future, as far into the future as you dare, erring on the side of giving people plenty of time to update or patch.  But that's a judgement call.
18:49 jonadab You could *even* just sort all the verified ones to the beginning of the list (and give them a green checkmark and the others a red question mark or something).
18:49 MTDiscord <warr1024> So by "use the token to ask the server", you mean the serverlist sends the token to the luanti server, and the luanti server naks the request if it gets a token but the token does not match?  That sounds like it should work to me.
18:51 jonadab If you're going to do it, have the server use its private key to sign a (random or pseudorandom) string that you supply with the token.
18:51 jonadab Then it's hard to fake.
18:52 MTDiscord <warr1024> That's the kind of solution I thought of at first, but validating the cryptographic soundness of that plan, let alone actually correctly implementing it, is a fair amount of work, while just using a shared secret random nonce token is simpler and good enough to have prevented the current crisis.
18:53 MTDiscord <warr1024> As long as the tokens are rotated and a server can't easily be tricked into sending its announce to the wrong host (which TLS is supposed to be able to prevent) then the random token system should be good enough to give us a lot of time to think of whether/how we want to do something fancier.
18:56 SFENCE joined #luanti-dev
19:20 Desour for better compatibility, the server list could also keep track which servers announced with their luanti server ip, and only not allow updates from other ips for these servers
19:22 Desour and the same for the token that you send to the server (which is also important to prevent ip spoofing), the servers who didnt use it in the first place could be handled without the checks. then attackers could only mess with servers that don't do the new authenticity stuff
19:44 MTDiscord <warr1024> IIRC all servers have to include their address in the announcement.  I think that's what we're already proposing: use the token if we can, try to use the IP if we can't.  I don't think we can fall back past both the token AND address match though, or else that just disables all auth mechanisms and leaves us where we are now.
19:44 MTDiscord <warr1024> There isn't currently a way for a server to opt in to address validation, and there especially isn't a way to do it that's not just subject to a trivial downgrade attack.
23:34 panwolfram joined #luanti-dev
23:58 rubenwardy sfan5: did you mean to touch ContentDB's weblate? It was reset to master yesterday

| Channels | #luanti-dev index | Today | | Google Search | Plaintext