Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. English: A vs. An(redblobgames.com ↗)
    5comments
  2. I built non-autoregressive decision models with RL a year ago(convaiinnovations.com ↗)
    230comments
  3. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    697comments
  4. Measure internet censorship. Contribute to the largest open dataset(ooni.org ↗)
    27comments
  5. How Hacker News ranking works: scoring, controversy, and penalties (2013)(righto.com ↗)
    discuss
  6. Brood War Bench(swerdlow.dev ↗)
    54comments
  7. Compiler-style optimization for drawing via Skia(arxiv.org ↗)
    2comments
  8. Deodands put a price on objects that caused death(jstor.org ↗)
    10comments
  9. Mayday Mysteries(maydaymystery.org ↗)
    1comments
  10. Two parallel neural ectoderm progenitors contribute to the developing brain(stanford.edu ↗)
    228comments
  11. ZK-JPEG: Zero-Knowledge Image Editing and Compression(iacr.org ↗)
    5comments
  12. Show HN: CUA-S1 – A System One Model for Computer Use(github.com/trycua ↗)
    4comments
  13. UFO Series Home Page: "UFO" TV Series from 1970(ufoseries.com ↗)
    14comments
  14. Suzanne Ciani's Buchla Cookbook(echo.orpheusinstituut.be ↗)
    18comments
  15. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    639comments
  16. Tin: full-text search for Postgres(planetscale.com ↗)
    70comments
  17. Supabase (YC S20) Is Hiring for OrioleDB(supabase.link ↗)
    discuss
  18. The Secret Life of Circuits(coredump.cx ↗)
    67comments
  19. New evidence for hidden chambers beyond Tutankhamun's tomb(nature.com ↗)
    32comments
  20. Black Holes or Black Hole Stars? Astronomers Spar over 'Little Red Dots'(quantamagazine.org ↗)
    42comments
  21. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    159comments
  22. I think you should almost never use AI to write(erichgrunewald.substack.com ↗)
    96comments
  23. San Francisco Onion Futures Company(onionfutures.com ↗)
    150comments
  24. Adventures in Microcontroller Circuit Debugging(bigmessowires.com ↗)
    5comments
  25. How to Write with an LLM(sockpuppet.org ↗)
    370comments
  26. Microsoft director: AI scraping 'the largest theft of labor in human history'(tomshardware.com ↗)
    20comments
  27. Cloudflare Quick Tunnels(cloudflare.com ↗)
    306comments
  28. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    228comments
  29. Saving another 100TB of RAM(cloudflare.com ↗)
    107comments
  30. Btrfs/ZFS/bcachefs under workloads classic benchmarks skip(bartosz.fenski.pl ↗)
    74comments

X.org Security Advisory: multiple security issues X.Org X server and Xwayland

207 pointsby 10mo agolists.x.org
196 comments
10mo agoHN ↗

Good that people are finding and fixing these, but basically allowing any untrusted client to talk to your X server is asking for trouble just by design. (Bonus points if you have any Tcl/Tk apps running, where you can simply transmit commands for the program to run via the X server.)

10mo agoHN ↗

There are plenty of setups where the X server runs at higher privileges/on a different host than the (partially trusted) application that might exploit the X server. This is a classic elevation of privileges vulnerability in those setups.

X11's practical absence of any security mechanisms for user sessions means you should probably not run any kind of low-trust UI program anyway, as there is no prevention of keystroke injection or screen recording, but that's a design flaw that will never be solved. That doesn't mean that EoP style attacks like these should be ignored or underestimated, though.

10mo agoHN ↗

The way X11 developers ended up fixing this is by creating Wayland. This way privileged operations (like keylogging, screen capture, etc) require the cooperation and authentication through the display server.

10mo agoHN ↗

That way you also prevent things possible in X11 to be impossible in Wayland, like a window setting it's own position, if you were to want that.

10mo agoHN ↗

Fixing X11's security would of broken window positioning as well. Since that is a security issue.

The deal here is that the only way to fix X11's security issues is by breaking all those types of workflows and forcing application rewrites to implement them in authenticated ways.

So if you are going have to go and break all that stuff, why not fix a crapload of other problems while you are at it?

Calling Wayland "X13" may have avoided a lot of misunderstandings, but it probably would of caused others.

10mo agoHN ↗

Since that is a security issue.

Maybe it's both? There are applications with good reason that need to chose their location themselves, and users who want that type of behavior, so it's definitively not just a security issue.

10mo agoHN ↗

Good. Disallowing software to position its own windows has been a major usability improvement over the X11 days of software making stupid positioning decisions and having to patch it out everywhere...

10mo agoHN ↗

Yeah, assuming all users and all software should work the same idea is a great way to get people moving to a new platform.

Maybe, just maybe, some people know what they want, and if they want applications that can put themselves in specific corners, why shouldn't the desktop let the applications do that, if the user is OK with it?

10mo agoHN ↗

... Not allowing windows to determine their own position is also a usability nightmare.

10mo agoHN ↗

That sort of solution is cancer if you want to do anything the display server authors didn't think of. I've got a script that I invoke with a global hotkey that determines the window title of the currently focused window and fuzzy matches it against pipewire audio stream names so I can mute the focused window with a single keypress. If I want that to work in Wayland I'm pretty much up shit creek because somebody with their head in the clouds thinks that my needs are super dangerous or something.

10mo agoHN ↗

That sort of solution is cancer if you want to do anything the display server authors didn't think of.

Hey come on man, a locking screen saver is a totally niche application. No demand for that.

10mo agoHN ↗

xscreensaver works just fine. It only needs to keep nosy roommates out, not the NSA. Not that Wayland would stop spooks anyway.

10mo agoHN ↗

Wayland devs for the longest time thought implementing what was needed for accessibility (mainly, global keyboard hooks for Orca to work) was a security problem. Nevermind the fact that nobody hacks X servers, or your wayland compositor, because if I wanted to hook your keyboard with a keylogger, I'd hook it through evdev. And then you wouldn't even know let alone be able to do much about it if I did it properly.

10mo agoHN ↗

Wayland doesn't say "this is impossible", it says "this is out of scope of the core display protocol, implement this somewhere else".

Which, well, we do. Practically all the X usecases are covered on Wayland systems now. Screen sharing, screen clipping, global hotkeys, file pickers, getting the window title like you said... I can do all of that on KDE, right now, under Wayland.

10mo agoHN ↗

Can you do it in a way that isn't KDE specific, and will work if you change your DE one day on a whim?

10mo agoHN ↗

As I understand, blind people can't use wayland right now.

10mo agoHN ↗

I know some blind people who tolerate it but yeah, I find it completely unusable at the moment. I haven't tried Gnome recently but last time I tried it I had apps like Bitwarden malfunctioning in some very, very weird ways that just... Never happened on Xorg. If I remember right, it was things like forms not being read properly or something, can't remember off the top of my head now. But it certainly didn't leave me with a good impression; it made me think this Wayland thing was just half-baked. Also, Orca modifiers were passed-through directly to the compositor and Orca wasn't allowed to intercept them either, which made just using my computer feel awkward since I'd always need to remember to turn off caps lock every time I wanted to do something even remotely complicated. I've heard that Gnome has solved this but as I said above, I think this may be a Gnome (and at most KDE) thing, and not something that everybody has decided to just do.

10mo agoHN ↗

Practically all the X usecases are covered on Wayland systems now. ... global hotkeys ...

Are you sure? I looked at that earlier this year for a personal tool I wanted to create and found no way to do it on Wayland (On X, I did it just fine).

I had a long back and forth about this very thing with both Claude and ChatGPT, and neither conversation was fruitful: every option had some dependency (like switching to KDE, or similar).

10mo agoHN ↗

You can write a Gnome Shell extension or whatever the KDE equivalent is.

10mo agoHN ↗

The way X11 developers

X.org developers, not X11 developers.

10mo agoHN ↗

X11 had the distinction between trusted and untrusted X11 clients basically forever. But nobody bothered to even spend the minimal amount of work to make this usable in practice^1. This had two reasons: 1.) It is irrelevant when you run the programs as the same user so nobody bothered (and no: Wayland does not help: https://github.com/Aishou/wayland-keylogger) 2.) It is more fun to simply pretend it is unfixable broken and write something new (something any good engineering manager should have stopped immediately).

¹. I used to use this and also fixed some bugs in some programs. The main problem when I last checked a decade ag was that some important extensions such as composite would need to be exposed to untrusted clients.

10mo agoHN ↗

something any good engineering manager should have stopped immediately

Who exactly should and can control the horde of OSS developers?

10mo agoHN ↗

That Wayland keylogger is not the same thing. X11 has several mechanisms (XTest, XRecord, XI raw inputs) to receive a global raw key input stream, accessible to anyone who connects to the X server, without even making a visible window surface. It even bypasses grabs, meaning that your lock screen password entry can be snooped on.

The Wayland keylogger acts like an application; all Wayland compositors will only send key events to the focused surface, so the user has to focus an active surface in order to get key events. Even in the scenario where you've LD_PRELOAD-hooked all applications, you still will never get the lock screen password, as the compositor never sends it out across the wire.

LD_PRELOAD is problematic from a security perspective, but it's not Wayland-specific: the same issue is true for CLI applications and X11 applications, and any attacker with the ability to write files could also just replace your binaries with malicious ones (stuff them somewhere into ~/.hidden, and then add a $PATH entry to the start).

10mo agoHN ↗

I think you did not understand my point. X11 has several such mechanisms, yes, but it also has the concept of untrusted clients that disallow the use of these mechanisms and could be used to provide safety similar to Wayland. The point is that this mechanism of untrusted X clients was neglected and I gave an explanation way.

10mo agoHN ↗

Yes and your response in the whole thread reading top to bottom was the first one that really taught an old dog a new trick. I've been using gnu on x11 since 1991, been annoyed by fellow student's audio streams on my work station back then, and I've never heard about trusted vs untrusted x11 apps.

I wonder how this debate was mainstream? did some gamers try to squeeze 3 extra percent by taking the protocol out of local stacks? there must have been better ways to do that, without throwing out all X11 benefits?

to this day I'm annoyed I can't have a decent window manager integration on gWSL because the compositor doesn't implement the full window manager protocol.

10mo agoHN ↗

See the ssh manpage for an explanation of untrusted/trusted clients. This debate was mainstream. Basically, some people presumable paid to work on Linux graphics decided to implement something new instead of doing their job, and gave talks about why X is fundamentally broken. I believe the driving force might have been the hope to support Linux on mobile or embedded devices, and X seems just unnecessary (although I think network transparency would be super useful on mobile devices). Some gamers certainly believed nonsense such as "all X programs are forced to use ancient drawing primitives and so programs will be much faster with Wayland". Wayland developers certainly did not do anything to stop such misconceptions. Later there was disappointment because obviously it was not faster (the drawing model for modern clients is essentially the same), but other myth such as the "fundamental security issue" prevailed.

10mo agoHN ↗

As far as I can tell, enabling the trusted/untrusted security feature breaks a lot of basic features, including clipboards, XRandR, GPU acceleration, XKB keyboard layouts, and whatnot. It's theoretically available but practically useless.

Xnamespaces looks to be more promising, but as far as I can tell that's still a WIP with little documentation, and from the documentation I can find it looks like it still breaks things like clipboard functionality.

10mo agoHN ↗

Well, the threat is shared access to resources like clipboards, so securing against this of course breaks the clipboard. Pick your poison.

10mo agoHN ↗

Pick your poison.

Permission system? X11 with a permission system is the next logical step for Unix graphics. There is absolutely no need to break 40 years of graphic software, or throw away 40 years of accumulated features.

10mo agoHN ↗

Yes, but even a permission system can only give a program access to the clipboard or not. You can't deny a program access to the clipboard and complain that the clipboard doesn't work.

10mo agoHN ↗

I don't think I've seen X configured to run as root in probably 15 years. If anybody still does anything like that, they're literally asking for it.

10mo agoHN ↗

Hmm.. On my Debian ps axuw|grep Xorg says

    root       34595  2.7  0.4 26146280 532248 tty4  Sl+  Nov13 783:33 /usr/lib/xorg/Xorg vt4 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -novtswitch -verbose 3
10mo agoHN ↗

That looks like the display manager (i.e. login screen) running on vt4, which is probably not where you are logged in. Does it switch to another user when you log in?

Note you have multiple virtual consoles which can have independent X servers.

10mo agoHN ↗

No, that's actually my real and only Xorg, it's the child process of /usr/libexec/gdm-x-session and that process is owned by my real user id, and the Xorg process provides /tmp/.X11-unix/X1 that e.g. strace -e connect xlsclients shows is the socket it uses. Notice also that it uses a significant amount of memory and has consumed a meaningful amount of CPU time, much more than a dm would do.

Good point about display manager though, I suppose it's not using Xorg then as I do know there is a login screen waiting at vt1 but that's the only Xorg process. Maybe the gdm3 incorporates a Wayland implementation in Debian 13.

10mo agoHN ↗

I think I ran into some display managers that do not start a new X session for every user. However I was trying out some rather non standard configurations at the time, some of which required root access for driver specific features.

10mo agoHN ↗

Why do people keep persisting this myth? X11 has authentication. You can either rely on filesystem permissions, or a shared secret. The same way thousands of other network servers work.

Any program you run on a computer (especially a Linux computer, which lacks modern OS security measures and has constant privesc kernel holes) exposes you to security flaws. There has yet to be any computer system designed that a hacker can't break out of. If you intentionally download and execute a program, you are rolling the dice, regardless of what the software is.

What's insane about all these discussions is that NOBODY IS HACKING X SERVERS. There's a thousand other kinds of software on Linux that there is real malware for. But nobody is trying to hijack your X11 session. This imagined threat is a red herring designed to bolster the argument for Wayland's horrible designs.

10mo agoHN ↗

I think the issue isn't that you downloaded random hostile software, but that other software you do use has some sort of vulnerability (recent Unity vulnerability, browser sandbox escape, etc) and an issue like this would allow for privilege escalation.

Wayland doesn't need X11's vulnerability as its only argument, Wayland is a much simpler design that is easier to iterate on because it doesn't assume the client and server are on different machines. The fact that it moves privileged APIs like screen capture behind portals is a bonus.

10mo agoHN ↗

So simple and easy to iterate on that Wayland compositors are still not as full-featured as X11 desktop environments after more then a decade, and can't be due to protocols no one is able to agree to implement.

10mo agoHN ↗

> Wayland compositors are still not as full-featured as X11 desktop environments

It depends what features you care about. X11 doesn't have tear-free video playback, HDR, or as good a security model as Wayland.

10mo agoHN ↗

Using a compositor fixes screen tearing, no need to use Wayland for that.

10mo agoHN ↗

> Using a compositor fixes screen tearing, no need to use Wayland for that.

Right, and that abandons the whole X drawing API in favor of passing around client drawn bitmaps. That was one of the big points of Wayland too - X has a whole bunch of stuff that no modern apps use anyway so lets throw it out and build up a better version of the capabilities we need.

If we abandon the X drawing API and half an OS included (memory management) and use KMS, all that's left is the features that are security holes.

10mo agoHN ↗

X11 has options for tear free video playback; it's not in the base protocol, and not all drivers offer it, etc, but it's acheivable. Fundamentally, you need to send the next frame to the server and ask it to switch frames during vblank (+/- notification), on today's systems, this is more of a coordination problem than a technical one; there's plenty of video ram to go around to double/tripple buffer.

HDR would fit in the X11 model of many bit depths, however the specifics don't really; afaik, X11 has a maximum bitdepth of 32 for pixel values, which means either limiting to 2-bits of alpha channel or using palettes (I think I saw that indexed colors can be defined with 16-bits per channel). An extension might be possible (with everything that brings), but I think the ship has sailed.

I agree that Wayland's security model prevents some undesirable interactions that X11 allows, but it also prevents or makes difficult some desirable interactions, so it's a mixed bag.

10mo agoHN ↗

I remember watching tear free HD video in 2011 on a netbook I dug out of the e-waste dumpster in the UC Berkeley CS building basement. Chrome/Openbox/X11. That laptop was literally trash.

10mo agoHN ↗

Aren't you just doubling down on Wayland being simple? X11 is the kitchen sink here.

10mo agoHN ↗

Wayland is the way to go. The same applies to Flatpak, Pipewire, systemD, etc. I'd say that this is obvious, and doesn't even need to be argued, to 99%+ of those who actually use the Linux desktop. The only opposition to this is a small group of decelerationists with a major, irrational aversion to change.

10mo agoHN ↗

Everything you listed is bloated, slow, incompatible, unfinished or unstable. My system worked fine 20 years ago on far less capable hardware. Now even with high end workstations systems lag, crash or have strange behavior

10mo agoHN ↗

Having only two major options, X and Wayland, doesn't mean either one is correct. It is generally true that X needs to be replaced, but Wayland is not necessarily the replacement we need. It would be good to have more competition.

On a separate note, I think it's probably true that Wayland has significant drawbacks that preclude it from being an obvious replacement.

10mo agoHN ↗

I see wayland as the pulseaudio of display.

Everybody is pushing it and trying to convince the people who have problems with it that it's completely fine and their problems aren't important (like blind people being completely unable to use the computer).

At some point the pipewire of display will come along and we'll all forget wayland was ever a proposed solution.

10mo agoHN ↗

That's not really how any of this works.

Pulseaudio is both a protocol and also an implementation of that protocol. Pipewire also implements the pulseaudio protocol, hence its compatibility with all existing software.

Wayland is a protocol only. Every compositor - and there are many - implements it "from scratch". The "pipewire of display" would simply be yet another Wayland compositor. No one is going to solve the problems of Wayland in one fell swoop by releasing another Wayland compositor. What is actually happening is that problems are being gradually solved by the introduction of protocol extensions, which usually get adopted by other compositors after achieving success in one.

10mo agoHN ↗

What's insane about all these discussions is that NOBODY IS HACKING X SERVERS

I knew someone who worked for a small loan type company. Passwords were stored in plain text, but even worse, the login form didn't actually check the password at all, it created valid sessions as long as you provided a valid user name.

When he informed his boss that was very bad, his boss simply said that nobody has abused it, and nobody would, don't waste time changing it.

The point, of course, is why would you wait until people are getting hacked to address a known vulnerability?

Sure, there are others, and they should be closed too, and they are when they are found. It makes no sense whatsoever to leave one open just because.

10mo agoHN ↗

It does make sense if the vuln doesn’t fit in your threat model. There are always an uncountable number of vulnerabilities and you can never fix all that are found.

No idea of course if the threat model that said boss had in mind made sense. But I always recommend to come up with a reasonable threat model first and then think you can harden against it.

10mo agoHN ↗

I don't dispute your anecdote but I think the point was: x11 has been around for decades, and these things just don't happen. And the reason is that there are much simpler and more effective ways to pwn a box than trying to screenshot an x session or trying to hook for key presses. So the vulnerability surface just isn't large enough.

10mo agoHN ↗

Hi -- throwaway

I have seen this happen as well. A memory corruption vulnerability in popular software allows unpriv shellcode to reach out and drop a rootkit which loads a rat as a kernel module. Attacker has control. Several big problems.

cobaltstrike beacons blocked. Instead pierce nat with STUN to attacker proxy. Use socket activated VNC/RDP/X.

Why not just steal the sessions and local data? Remote services log access (ip, time, location), easily correlate and forensics would lead back. Local data encrypted at rest, hands on keyboard needed any way since recon incomplete. Are they planning to scan memory for ssh key unlocks or intercept ssh -sk key? This is big, noisy and take developer time. If you log in to a email this leave forensics and is a CFAA violation while risking FAANG security. Attacker needs to shoulder surf.

Most hack is install crypto mining or steal a password. Maybe it is ransom. How do you get 2fa code if you want access to sensitive information? How do you steal hardware keys? You can back door browser, MitB but it gets updated away and you lose access. back door anything and lose access or discovered.

This is not a advanced attacks but it is targeted attacks. People are saying x server never get hacked, but computers get hacked. with X11 the chain is Exploit -> Game over. with wayland you need to go farther.

10mo agoHN ↗

That's not how this works. If you cannot prove conclusively that something is not the case ever, then you must accept that somewhere in the infinity of possibility it is.

10mo agoHN ↗

is why would you wait until people are getting hacked to address a known vulnerability?

Do you have some other way of _reliably_ identifying vulnerabilities?

It makes no sense whatsoever to leave one open just because.

It makes sense to have security options. If I want to leave it fully unlocked, that's my business, and I possibly have good environmental reasons to do this.

What you should really care about are security _defaults_. And in X11's case I'm not aware of any distribution that ships the server with TCP connections to the sever enabled. You have to go well out of your way to even begin using this functionality.

10mo agoHN ↗

Do you have some other way of _reliably_ identifying vulnerabilities?

This is irrelevant given that we are talking about known vulnerabilities.

No, you can't reliably find all the vulnerabilities by auditing the code.

Yes, if you audit the code and believe you have found a vulnerability, you fairly reliably are correct in your belief. And should probably take action even if you aren't.

10mo agoHN ↗

we are talking about known vulnerabilities.

In a context which does not involve them. I simply ignored the subtle goalpost shift and addressed the core issue of the article.

And should probably take action even if you aren't.

Where they action could include "disabling as a default option." Yes?

10mo agoHN ↗

I think the point being made isn't that X.org shouldn't fix their vulnerabilities. It's that there's always a huge amount of discussion about vulnerabilities and security models when one is found in the display server or the window manager when actual exploitation doesn't seem to be particularly high.

Many distros, if not most distros, disable port 6000+ listening for X.org by default. So, immediately, it's not a remote exploit. OK, so it's scope is already limited to local escalation attacks. Looking at the CVE, the only reason it's high is because (a) X.org is everywhere, (b) you don't need to interact with [another] user to exploit it, and (c) it's not particularly complex to exploit.

That is bad, but it's also behind most of the other security, rather than bypassing essentially all of it like Heartbleed or Shellshock.

So, either I have to have X forwarding turned back on, or have people with SSH access to a server that is also running X. Both of those seem like uncommon situations. You probably shouldn't be running X or permitting X to be started unless you need X forwarding, and X forwarding is a pretty odd requirement given modern application design being so web-browser-focused.

So it might be CVE High 7+ if you're on a system where it's possible to exploit it. But it feels like you shouldn't often be on a system configured in a way where it could be exploited in spite of the prevalence of X.

Essentially: This isn't a rehash of the libXfont problem.

10mo agoHN ↗

But there is no vulnerability at all. For a normally configured X server with TCP listening, the server should be configured to use MIT magic cookies for authentication. This randomly-generated string is needed to authenticate and establish a connection to the X server. You can use the xauth command to manually configure it as needed.

It's the equivalent of HTTP Digest authentication, and nobody's demanding that we rewrite HTTP because Digest authentication. It's in plaintext, so you shouldn't use it; but if a hacker doesn't know the secret, they can't get in.

10mo agoHN ↗

Digest as I understand it is a weak authentication protocol, it doesn't mean it is implemented with known vulnerabilities.

I distinguish vulnerability from weak. The weakness is not necessarily intended, but the question is, does it do what it is supposed to do. Or is there a known bug: non intended possible exploit, that would make it a vulnerability.

If it isn't known then it doesn't exist. But we can assume all software do have bugs.

Digest is part of the http protocol, if the protocol is found to have vulnerability I can imagine it would be dropped and be rewritten. The digest part, not the entire http protocol.

A hacker may not have the password, but manages to brute forces it. Is that a digest vulnerability or does it fall onto the application to integrate some preventing brute force authentication measures?

My take is digest doesn't pretend to prevent brute force attacks.

Some may not agree with that logic, but since about everything is made of a combination of vectors, and that each typically has some weakness, all you get is a balance between usability, cost, and security.

We can make the case for your typical cryptographic signature, or encryption algorithm. ECDSA standing as well respected, solid cipher. Is it vulnerable? It is vulnerable to the potential power of machines we may build in times to come. Quantum or leaps ahead. Will it be vulnerable then? Yes but it isn't a vulnerability. We would then call ECDSA obsolete.

Digest is obsolete yes.

The interesting part about cryptographic methods is that we may know of some being obsolete ahead of time. So long as we can determine they can be brute forced. For now it isn't obsolete despite the existence of quantum resistant alternatives. Hacker news uses ECDSA for the exchange of keys between server and client, then encrypts all connections using another algorithm safe against quantum computers. Thanks. But beyond that, probably not.

Is X obsolete? Vulnerable? Seems like X developers themselves admit it is a vulnerability. They didn't know of the possible exploit. As to the severity? It's often subjective from my experience.

Happy to be wrong, and we don't have to agree.

10mo agoHN ↗

But there is no vulnerability at all. For a normally configured X server with TCP listening, the server should be configured to use MIT magic cookies for authentication.

This feels like you're not understanding why something is called a vulnerability, how they're defined, or why they get rated the way they do. "It's not vulnerable in a best practice configuration," is not the same thing as, "there is no vulnerability." That is incorrect and misleading, and I think you're conflating risk and severity.

The definition used for a vulnerability is [0]: "A weakness in the computational logic (e.g., code) found in software and hardware components that, when exploited, results in a negative impact to confidentiality, integrity, or availability." (emphasis mine)

The CVSS score is not a measure of risk. It is a measure based on the qualities of the defect that was identified and how widespread the software is. A higher CVSS score is associated with higher risk, but your risk is going to vary based on your configuration.

All they did was go to the calculator[1], plug in the answers that best fit the definitions provided for what those areas and responses mean (e.g., CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H for CVE-2025-62229), and they get that 7.3 score [2].

[0]: https://nvd.nist.gov/vuln

[1]: https://www.first.org/cvss/calculator/3-1

[2]: https://www.first.org/cvss/calculator/3-1#CVSS:3.1/AV:L/AC:L...

10mo agoHN ↗

This is because Wayland wants to differentiate itself from X on security. Wayland has to show it's more secure than X - as part of that, Wayland has to show that X is insecure.

10mo agoHN ↗

No, wayland already differentiates itsself from X11 because X is a tool for graphical network terminals and Wayland is a tool for single machine rendering.

X11 is a mountain of tech debt that almost nobody wants to maintain.

10mo agoHN ↗

Why do people keep persisting this myth? X11 has authentication. You can either rely on filesystem permissions, or a shared secret. The same way thousands of other network servers work.

Any program you incidentally run within a typical graphical user session will have access to the X socket and a cookie, they will be able to connect. And after they connect... They basically just can do anything they want with zero real restrictions, including most likely some fairly trivial paths to root escalation. Even if they're running inside of a sandbox or container, with only an X11 socket poking through.

This problem was realized a very long time ago with the security extension but most of it never really caught on.

Any program you run on a computer (especially a Linux computer, which lacks modern OS security measures and has constant privesc kernel holes) exposes you to security flaws. There has yet to be any computer system designed that a hacker can't break out of. If you intentionally download and execute a program, you are rolling the dice, regardless of what the software is.

If you believe this is true, then what exactly is the point of any security measure? Why bother using isolation and sandboxing, or passwords? Why does Windows bother patching flaws if they know there are certainly more of them and they will never fix them?

Do you by chance also smoke because you're going to die anyways?

What's insane about all these discussions is that NOBODY IS HACKING X SERVERS. There's a thousand other kinds of software on Linux that there is real malware for. But nobody is trying to hijack your X11 session. This imagined threat is a red herring designed to bolster the argument for Wayland's horrible designs.

Lol. That's primarily because the Linux desktop is utterly irrelevant, not because nobody would care to do it. Is it really surprising that attacks against desktop computers would focus almost entirely on the OS that has 90+% of the market share? We don't get free software OS desktop malware for the same reason we don't get free software OS software ports.

Watching and waiting with security was a totally acceptable position in the 90s, but we get the general gist these days. We need security-by-design.

On the server side of Linux where Linux is relevant, the situation is much more impressive; auditing using eBPF, sandboxing with gVisor, microVMs with Firecracker and cloud-hypervisor, isolation using namespaces and seccomp-bpf and more.

On the desktop side, people are still arguing over whether or not it's a problem that any X client can by default silently keylog the entire system trivially. Okay, but a lot of us actually see that as a problem, and we're not interested much in "hearing you out". Most of us recognize that the Wayland protocol has warts (and too many damn protocols), but X11 has many more warts. I didn't care what was the successor to X11 specifically, I just cared that we eventually made some progress. Most people have nothing to offer here and just suggest we should've stuck with X11. Okay dude, but nobody wants to. The X.org devs would like to move on. The desktop environments really would like to move on. There was basically one serious guy that actually wanted to work on improving X11 and he turned out to be kind of crazy and couldn't stop breaking shit anyways.

10mo agoHN ↗

You could use a proxy server (regardless of the protocol), which might improve security (and other things) better than other methods do, I think.

There are problems with both X11 and Wayland, although I dislike some of the features of Wayland.

10mo agoHN ↗

Yeah, with Qubes that's exactly what they do. I forget what the software is called, but they use an X11 proxy that tries to enforce policy.

That said though, that does require you to proactively run every X application with this sandboxing. For Qubes which forces everything into VMs this is doable, but for most other systems there isn't an obvious way to handle this sort of thing.

My only major complaint about Wayland that can't just be fixed relatively easily is Mutter refusing to support SSD. (Well, the actual technical problem could be fixed relatively easily, but the social one not so much.)

10mo agoHN ↗

Firejail uses nested X11 servers like xeohyr or xrdp to restrict application access to the primary X11.

10mo agoHN ↗

including most likely some fairly trivial paths to root escalation

Why would this be likely?

10mo agoHN ↗

Because there is no isolation whatsoever. A terminal running as root can just be typed into. Some apps can be coerced into code execution when messaging them over X11. You might have to get a little creative, but there's a lot of room for creativity.

Needless to say, though, if the user doesn't have anything open with root privileges or cached sudo, then you probably won't be escalating to root with only X11. You'd have to wait for something to crop up. I'd reckon though if you are resident for long enough during a desktop session you'll find an opportunity. (And on most desktop systems that still, of course, leaves the usual points of interest outside X11. But if you wanted a way to escape, say, Flatpak containment, this is definitely a good start.)

10mo agoHN ↗

Of course X has authentication, but once you're in, you're in. There are no elevated windows, screen recording permissions, or any sort of keylogger prevention. That was normal a few decades ago, but the world has moved on since.

There's no real reason it can't do any of that, it just doesn't and there are no real plans to add these features.

I'm not convinced by the "if you run a program you should assume you've already been hit by a CIA 0day". Obviously nobody is dialing into your X11 server from the internet, but this is a relatively easy nobody:nobody -> root/wm-session/whatever elevation of privilege.

10mo agoHN ↗

If malware is in your X server, doesn't that mean it's running under your user account? And if that's the case, then couldn't it just steal your data right off the filesystem without needing to get it from X?

10mo agoHN ↗

The valuable data on your machine might not be something permanently stored in the filesystem, but ephemerally recorded in a process. Say, a memorized password.

10mo agoHN ↗

Couldn't the malware still get it without having to deal with X? E.g., by attaching to your process as a debugger?

10mo agoHN ↗

People keep talking about X11 security in the context of servers and networking, but I'm more concerned about exposing more attack surface to local malware (i.e. keylogging other processes, capturing program state).

10mo agoHN ↗

Any application can literally log EVERYTHING! It's good to see wayland getting better everyday

10mo agoHN ↗

Solaris had Trusted Extensions for X11 which shipped with Trusted Solaris 8.

In 2000.

Solaris 10 had it built into the base OS and integrated into both the CDE and GNOME desktops they shipped. With OpenSolaris it was released as open source under the non-GNU CDDL license.

In November 2006.

Wayland was started in 2008.

10mo agoHN ↗

X11's practical absence of any security mechanisms for user sessions means you should probably not run any kind of low-trust UI program

This has nothing to do with X11 or even UI at all. You should not run any low-trust program whatsoever (outside of a container). Any program that runs as your user can change your ~/.bashrc or any other file on your homedir.

Of course this is a feature that you want, for example when you edit these files with a text editor.

10mo agoHN ↗

Bonus points if you have any Tcl/Tk apps running, where you can simply transmit commands for the program to run via the X server.

Back in 1996 the level of X integration in Tk was awesome; I had a shell tool that could make Netscape do stuff by firing MIT magic cookies at it.

In a contemporary setting, it's pretty horrifying.

10mo agoHN ↗

It did, but it could receive messages thanks to MIT Magic Cookies, which you could send because of Tk’s excellent integration with X. I can’t remember now if it was the browser you could also effectively spy on via similar means. Long time ago. I have largely forgotten how my tool worked now but the code I wrote (modified wish shell) might still be out there.

10mo agoHN ↗

Some oldschool legends are still fixing bugs in xorg.

Alan Coopersmith in particular. He even fixed a bug I reported. :)

(I forgot in which app it was but the bug report should be somewhere still; it is not old, perhaps 2 years ago or 3 years ago. The xorg app in question behaved oddly when doing "--version". I only noticed this because I wrote a ruby script that displays which version of programs are installed, and that one kept on making problems, whereas the others worked fine. After I reported it, Alan fixed this very quickly. I think it was some missing flag in the C program or something like that; right now I can not remember the name of the program ... my brain tries to say xrandr but I think it was not xrandr but a less frequently used program somewhere in the FTP listing ...)

10mo agoHN ↗

These are all "no way to prevent this, say users of only language where this regularly happens" type problems though.

The send command in Tk is lel, but can easily be effectively closed by rebinding it to a no-op.

10mo agoHN ↗

You do realize that your web browser is executing code feeded by remote servers (RCE). But it is important to fix the windowing system. /s

10mo agoHN ↗

Would Fil-C have prevented the first or third?

10mo agoHN ↗

By my reading, it would have prevented all of them.

10mo agoHN ↗

Wonder how these play out against the https://github.com/X11Libre/xserver base, would be interesting to hear from that end as to how these things are handled. My understanding is that they address any sec issues that arise on x.org but it would be fascinating if the issues are already mitigated since XLibre updated their xserver port with 1000s of issues that were never addressed on the x.org side of things.

10mo agoHN ↗

On their github you can see all three changes identical to x.org's happened on October 28th (same day as the advisory). So, they were not already fixed, but the fixes were applied immediately.

10mo agoHN ↗

That project is a pipe dream. They don't have what it takes to continue X11 alive once X.Org pulls the plug.

10mo agoHN ↗

I bet you are the life of the party. Seriously though, what makes you write that so matter of factly?

10mo agoHN ↗

That's the fork where the primary cause was to be "anti-woke", right? Honestly it seemed like it was just because that one guy was a little unbalanced, and he happened to be channeling that energy into an X server fork.

10mo agoHN ↗

no the primary cause was that the main xorg project wasn't accepting the devs patches any more.

10mo agoHN ↗

... because this dev's patches broke master, multiple times.

I feel this is an important detail to keep in mind while choosing a fork.

10mo agoHN ↗

which mattered because everyone pulls from master, because xorg stopped doing proper releases. it's certainly something to bear in mind if you intend to run xlibre though.

10mo agoHN ↗

I don't think "everyone" pulls from master - "everyone" run the distributions, and they always pin to the specific git commits. Only people who run xorg master are the ones who want bleeding edge, and those would be using it no matter release or not.

And it's not like metux will suddenly become more careful just because he does not have to worry about other anymore. If anything, I expect there to be much faster changes and much more breaking things... Here is a great quote [0]

@metux that you've had to fix this bug twice (!1844 (merged), !1845 (merged)) shows a lack of attention and care. This was a known regression, with clear reproduction steps, and at first glance, it does not look like you tested your PR at all.

And that goes in general; I really haven't seen the level of care and attention I would expect to see in these patches; several of them had obvious buffer overflow issues that would have easily been caught if tested.

[0] https://gitlab.freedesktop.org/xorg/xserver/-/issues/1797#no...

10mo agoHN ↗

I'm not even trying to say they shouldn't have kicked him out, just that it had nothing to do with wokeness, and more to do with philosophy of how the project should be run.

10mo agoHN ↗

sure, he's a bit of a kook, but wokeness itself is really incidental to the whole thing.

10mo agoHN ↗

From the README: ``It's explicitly free of any "DEI" or similar discriminatory policies.'' and ``Together we'll make X great again!''

These are both phrases used by people who are anti-woke (I guess asleep would be the proper term).

10mo agoHN ↗

XLibre looks nice with lots of work happening in only 5mo.

10mo agoHN ↗

The problem with XLibre is political, not technical. When they came out they made a big deal of being the anti-woke free-speech no-vaccine-mandate alternative to woke cancel-culture Xorg, which instantly ruined their reputation before it even began.

10mo agoHN ↗

Such an unforced error given how irrelevant any of this is to their project.

10mo agoHN ↗

Coverity is pretty good about finding these kinds of bugs. Is there a reason why a project as significant as Xorg isn't taking advantage of their gratis access for that tool?

10mo agoHN ↗

I think the short story is that the people who develop Wayland are the people who used to develop Xorg.

And they’d rather spend their energy on giving you a compelling reason to switch, rather than using it to add to the reasons for staying on a project they now consider obsolete.

You may disagree with their assessment, but you can’t blame them for how they decide to prioritize.

10mo agoHN ↗

I don’t think that is necessarily true. Most of the work goes way back (1984), done by people who have been retired for a long time now. Then in the late ‘00s redhat’s x11 maintainers (i.e. young people who were hired to fix bugs, not original developers) intimated that with DRI/DRM, x11 had become mostly obsolete, and that they needed to start over, so we got wayland. All I would add to that is that if they were correct, rather than conjuring an excuse to write their own thing, everyone would have jumped to wayland over a decade ago, but here we are, 17 years later, the benchmarks are still weak, and people are still squabbling. seems more like JWZ’s CADT than anything else.

10mo agoHN ↗

I think the short story is that the people who develop Wayland are the people who used to develop Xorg.

They certainly say that to people a lot. Oftentimes the person saying it is young enough that I wonder how much time they spent working on X.

10mo agoHN ↗

I started programming on the Tandy TRS-80. Never made significant X11 contributions.

So I doubt age is the deciding factor ;)

10mo agoHN ↗

The main pain in linux is graphics. It's a shame.

10mo agoHN ↗

Xorg is indeed a lot of painful complexity. This being said, the software is not Linux specific, and for modern Linux distributions, it is more and more a legacy technology.

10mo agoHN ↗

Our chief pain is graphics... graphics and audio... audio and graphics... our two pains are audio and graphics... and wifi hardware support... Our three pains are audio, graphics, and wifi hardware support, and an almost fanatical devotion to the command line.... Our four... no... Amongst our pains... are such elements as graphics, audio.... I'll come in again.

10mo agoHN ↗

Graphics is the reason Linux got over 1% desktop market share. When you have a problematic piece of hardware, sure, it sucks. But most setups will run Steam games near native quality out of the box. I'd blame the hardware not Linux.

10mo agoHN ↗

Considering how nicely Weston with SW rendering runs in Fil-C, I bet that the X server will run fine in Fil-C, too.

Fil-C exhibits the lowest overhead in code that spends its time on primitive bits.

Fil-C exhibits the highest overhead in code that chases pointers.

I'm assuming X is the former. Weston seems to be.

10mo agoHN ↗

_Roughtly_ speaking, X11 is only there for old games and the steam client. It is even worse with the steam client since the main executable in still 32bits.

10mo agoHN ↗

_Roughtly_ speaking

_Strictly_ speaking X11 is only there because, after all those years, Wayland still does not meet expectations.

10mo agoHN ↗

huh? Nope. x11 is here only for legacy support... and that valve client (which master binary is still a 32bits executable hardcoded on x11 and GL).

10mo agoHN ↗

How did Twitter get away with taking X.com?

If it was the other way around, would an open source or whatever project have been able to take Twitter.org?

10mo agoHN ↗

It was from x.com in the late 90s, merged with PayPal, Elon took the domain with him.

10mo agoHN ↗

Ah forgot about that. Didn't think it'd predate x.org