Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Security Linux

Fedora 38 To Prohibit Byte Swapped Xorg and Xwayland Clients (fedoraproject.org) 36

slack_justyb writes: A rather exotic feature in Xorg and Xwayland is being proposed to have the default value turned off going forward in Fedora 38 due to its use in attacks (CVE-2014-8095, CVE-2014-8099, CVE-2014-8103. . . to name a few). The feature allows servers running on one endianess to byte-swap to allow clients of a different endianess to connect to it. This was more common in the 1980s when X servers ran on big-endian and clients would connect who were little-endian.

The Xorg and Xwayland implementation of this feature has gone largely untested, the number of Fedora users that use it are virtually zero, and considering the number of attack vectors this has presented historically, setting the default to deny clients that require this seems the better way to do.

This change will be to the xorg-x11-server and xorg-x11-server-Xwayland packages and those needing the feature turned back will need to add "AllowSwappedClients" "on" to their xorg.conf.d file in the "ServerFlags" section. Xwayland users will need to pass the +byteswappedclients flag, however, the compositor will need to be able to handle this flag which at this time GNOME does not.

This discussion has been archived. No new comments can be posted.

Fedora 38 To Prohibit Byte Swapped Xorg and Xwayland Clients

Comments Filter:
  • Encouraging people to boycott a feature because you think it could have security bugs is just FUD.

    If anything the fact it had vulnerabilities should tell you it's now fixed.

    • You're never happy.
    • by Entrope ( 68843 )

      Yeah, the whole security justification seems to be that one single advisory [x.org] mentions "SProc" a lot. The security bugs in that advisory did not actually have anything to do with byte-swapping; they were traditional integer overflows and the like. One might as well argue that GLX is a security risk on the same basis -- it shows up an awful lot in that advisory as well.

      • Re: (Score:3, Informative)

        by iljavs ( 10265840 )
        I'm the guy that found all those bugs in 2014. There were a _LOT_ of them. And I didn't catch them all. the 2021 x.org advisory lists some more SProc bugs. The 2022 one (that just came out) also lists a couple of byte swapping security bugs. There's no telling if there are more. I suspect there are. Disabling this feature is -imo- a good idea. Funny you mention GLX. that code is truly horrible, and it has been disabled by default after I reported a bunch of bugs in it. Exactly because it's a huge security
    • Encouraging people to boycott a feature because you think it could have security bugs is just FUD.

      How about boycotting the feature because it's dumb. What sensible PROTOCOL is ever endian-sensitive to begin with? No communications protocol should ever be sensitive to the underlying physical construction of the CPU on one end of it. Of course this "feature" should be turned off, and X should just consolidate on one "endianness" or another in all its communications.

      • by Anonymous Coward on Thursday December 22, 2022 @07:14PM (#63151534)

        Don't forget that X was designed in a time with a lot less processing power available, and it needs to be fairly low-latency and deal with a lot of small packets going back and forth. It's not batch-processing, it is latency-sensitive. I recall X actually causing the NIC to make audible noise because of all the small packets reporting mouse movements. It was slight, but it was there, and no other protocol managed to ride the NIC like that. So you really do want to reduce the amount of work.

        If you do the "proper" host-to-network, send, receive, and network-to-host translation dance, that's two translation steps of which you can avoid at least one, possibly two, by client and host telling each other what endianness they have and if they differ, one of them agrees to do the translation.

        So there are good reasons to essentially have two equivalent encodings that can be "unpacked" by simply overlaying with a struct definition and possibly doing some byte swapping along the way, but only once. These days you'd just shrug and say the customer needs to throw more hardware at the problem but really, that's poor engineering practice. Done properly, this feature is invisible to upper layers, so the claim that it might cause security problems points at something else, developer ineptitude.

    • a) Its not "boycotting". Its turning off by default because its a deprecated feature that stems from the mainframe days when endianness headaches where more common.

      b) Its *entirely sensible* security best practices that if there is unused code that isn't actively maintained because its not actively used.

      c) Nobody loses. If you dont like it, turn it back on. Its not deleted, just turned off. But since almost nobody uses this feature because its *very* hard (maybe impossible?) to find an X terminal that suppo

  • No problem, as long as #t2sde Linux still supports 30+ vintage and retro CPU architectures from ARM over PowerPC to SPARC ;-) https://www.youtube.com/watch?... [youtube.com]
  • by stuff-n-things ( 89988 ) on Thursday December 22, 2022 @08:50PM (#63151748) Homepage

    In X terminology, the X server runs on the computer with graphics display, not the (historically anyway) big hardware with lots of CPU, memory, and storage AKA the "server". When you started X on your little endian Windows 3 PC with VGA graphics card and telneted to the big endian Sun/SGI/HP/Digital/IBM AIX server to run X Emacs, X Emacs would be the client to the X server running on the PC.

    • Server is network peer that accepts connection and client is a peer that initiates interaction. X11 is not an exception: X server accepts connections from clients and serves their requests to draw graphics. What has more cpu/ram/disk/etc or has server or desktop form-factor is irrelevant.
    • Description has client and server backward

      No it doesn't. A server serves resources. A fileserver serves storage. A print server serves printers. A display server serves the display, and this is what X does.

      Once upon a time, networks would sometimes have large compute servers which would serve up compute which were nicknamed "servers". It would get confusing if you referred to both things as "servers" without the qualifying term. I think 90% of this was random X hate because no one ever objected to connectin

    • Comment removed based on user account deletion
  • Yeah, I'm not running Fedora. Nor do I sign up for those distro surveys where I reported what I am running. (I have done these in the past, back when Slackware was a common distro).

    Do I connect headless PowerPC (Mac G3 B&W) to a Raspberry Pi X11 and even run a little bit of GLX? Sure, all the time. Makes it convenient to test code without a theoretical KVM that can handle HDMI and VGA simultaneously. (you can to some extent, if you have an older monitor that switches between analog and digital DVI quick

    • by AmiMoJo ( 196126 )

      Does it not still work, just with a performance hit to do some byte swapping? I seem to recall that PPC had some instructions to speed that up too.

      • That's a fair question. If I read the article correctly it disabled the server side byte swap. I don't think client libraries like XCB support any client side byte swap. So you're out of luck there. It's entirely possible the consequences are overblown just to get us to click on and comment on the article.

    • by tlhIngan ( 30335 )

      Do I connect headless PowerPC (Mac G3 B&W) to a Raspberry Pi X11 and even run a little bit of GLX? Sure, all the time. Makes it convenient to test code without a theoretical KVM that can handle HDMI and VGA simultaneously. (you can to some extent, if you have an older monitor that switches between analog and digital DVI quickly and some splitters for a DVI KVM. but in practice once you KVM breaks it's hard to replace)

      Maybe big endian is dead. It shouldn't be but from a business point of view if aarch64,

  • Why would these features remain "largely untested" if they were used in multiple attacks?

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...