Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Bug Security Games Linux

Portal 2 Incompatible With SELinux 212

jones_supa writes "Valve has recently released Portal 2 on Steam for Linux and opened a GitHub entry to gather all the bugs from the community. When one of the Valve developers closed a bug related to Portal 2 recommending that the users disable a security feature, the Linux community reacted. A crash is caused by the game's interaction with SELinux, the Linux kernel subsystem that deals with access control security policies. Portal 2 uses the third-party Miles Sound System MP3 decoder which, in turn, uses execheap, a feature that is normally disabled by SELinux. Like its name suggests, execheap allows a program to map a part of the memory so that it is both writable and executable. This could be a problem if someone chose to use that particular memory section for buffer overflow attacks; that would eventually permit the hacker to gain access to the system by running code. In the end, Valve developer David W. took responsibility of the problem: 'I apologize for the mis-communication: Some underlying infrastructure our games rely on is incompatible with SELinux. We are hoping to correct this. Of course closing this bug isn't appropriate and I am re-opening it.' This is more of an upstream problem for Valve. It's not something that they can fix directly, and most likely they will have to talk with the Miles developers and try to repair the problem from that direction."
This discussion has been archived. No new comments can be posted.

Portal 2 Incompatible With SELinux

Comments Filter:
  • by Yoda222 ( 943886 ) on Saturday March 08, 2014 @11:27AM (#46434381)
    I think that most Windows gamers run anti-virus. Do you also have good advises for them ?
  • oh my god!! (Score:2, Insightful)

    by Anonymous Coward on Saturday March 08, 2014 @11:44AM (#46434449)

    Oh my god!?!? So what about the thousand enterprise software and services (from IBM to Oracle) which specifically say to absolutely disabile SELinux?!?
    Let's be honest, SELinux is one of the most useless piece of software ever created by men...

  • Who do you trust? (Score:4, Insightful)

    by nurb432 ( 527695 ) on Saturday March 08, 2014 @12:00PM (#46434505) Homepage Journal

    That is what it boils down to. Do i trust a game company on a secured system? No.

  • by jones_supa ( 887896 ) on Saturday March 08, 2014 @12:40PM (#46434689)

    you just need to allow the portal2 binary to use execheap. Now obviously its not good that portal2 uses execheap, but SELinux is fine grained enough to allow for it.

    So it's either one of these that is the solution...

    a) Go to System Settings -> SELinux -> Exceptions tab -> Tick a checkbox next to "Portal 2".

    b) Read complex technical documentation with no good examples and spend a full day crafting the proper configuration by manually editing various text files.

    I wonder which one...

  • by Opportunist ( 166417 ) on Saturday March 08, 2014 @12:40PM (#46434699)

    While not false, the cost associated with NOT relying on third party tools also means that smaller studios could not possibly develop anything halfway competitive. Larger studios in turn would have to dedicate far more resources to developing the underlying basic engines rather than content.

    Yes, reliance on third party tools, APIs, engines and libraries makes you dependent on them. But it also frees a lot of resources that you can invest in the game rather than developing its foundation.

  • by tepples ( 727027 ) <tepples@gm a i l . c om> on Saturday March 08, 2014 @12:52PM (#46434751) Homepage Journal
    The designer of the sound hardware can't tell what formats (plural) will become popular in the future. And we already have a perfectly good DSP on the CPU.
  • Feigned outrage (Score:5, Insightful)

    by Mr. Freeman ( 933986 ) on Saturday March 08, 2014 @01:01PM (#46434789)
    The same people complaining about Valve instructing people do disable SELinux are the very first people to recommend doing exactly the same thing when someone online asks "How do I do [basic thing] in Linux? It doesn't seem to be working." There isn't a single message board dedicated to Linux that isn't filled with "disable SELinux" posts.
  • by wiredlogic ( 135348 ) on Saturday March 08, 2014 @01:15PM (#46434861)

    None of which explains why it needs executable code and data mapped into the same memory space.

  • by WuphonsReach ( 684551 ) on Saturday March 08, 2014 @02:50PM (#46435393)
    Besides, SELinux is serious black magic and consequently there aren't many people who know how to correctly configure it.

    There's only a handful of commands needed these days on CentOS/RHEL boxes. And the "sealert" command will guide you about 90% of the way.

    I estimate that 80-90% of issues are mislabeled files (or ports) on the file system. Either because you have put files for a service that is protected with SELinux in a non-standard spot, or because the SELinux policy is out of date. Once you put your files in the proper location or use "semanage fcontext" to define the file context that should be applied to a particular path/file and relabel, those problems go away. The hardest part of this is defining the regex string to apply the right label to your file system.

    Other issues are handled by setting one of the SELinux boolean flags which enable optional parts of the security policy for the service (such as httpd). These loosen up the SELinux restrictions for cases that don't apply to everyone. The "getsebool" and "setsebool" flags handle this functionality. For example "httpd_enable_cgi" allows CGI scripts to execute. The nice part about the booleans is that you can turn them on/off at will to see if it fixes your issue before making the change permanent.

    And sometimes you have to use the brute-force "audit2allow" tool to write a customized policy that lets you do what you want to do. Just like any other tool, if you don't pay attention to what it is doing, you can shoot yourself in the foot.
  • by Animats ( 122034 ) on Saturday March 08, 2014 @03:21PM (#46435581) Homepage

    This is why open source bug reporting systems need a "developer in denial" status. Here's the original bug report. [github.com] If a developer tries to close a bug and the users don't agree, the bug should go into "developer in denial" status and that should count against the developer's stats. This particular bug was closed by Drew Bliss [github.com] of Valve. 3 followers, 0 stars, 0 following. Should be flagged as "unsuitable for employment on security-related projects".

Things are not as simple as they seems at first. - Edward Thorp