CVE-2024-6387: RCE in OpenSSH's server, on glibc-based Linux systems

2 years ago by 0x0 to c/security

Regression in signal handler.

This vulnerability is exploitable remotely on glibc-based Linux systems, where syslog() itself calls async-signal-unsafe functions (for example, malloc() and free()): an unauthenticated remote code execution as root, because it affects sshd's privileged code, which is not sandboxed and runs with full privileges.

MrSoup 6 points 2 years ago

8.5p1 <= OpenSSH < 9.8p1 is vulnerable

path: 0 10930778, hotness: undefined, score: 6, children: 7
refalo -2 points 2 years ago

what does that mean? I don't understand multiple signs in the same sentence and what is the significance of having "OpenSSH" in the middle?

path: 0 10930778 10951203, hotness: undefined, score: -2, children: 6
cucumberbob 3 points 2 years ago

You can read them as separate statements with the middle repeated and a logical AND between them:

If (8.5p1 <= your OpenSSH version) AND (your OpenSSH version < 9.8p1) Then you are vulnerable

It’s the same as saying if your OpenSSH version is between these two versions (including 8.5p1, but not 9.8p1), then you are vulnerable

path: 0 10930778 10951203 10952036, hotness: undefined, score: 3, children: 5
refalo -2 points 2 years ago

I don't get it... wouldn't everything < 9.8p1 already include <= 8.5p1? So why is it even necessary to mention?

path: 0 10930778 10951203 10952036 11002617, hotness: undefined, score: -2, children: 4
rushaction 4 points 2 years ago

Because this is a regression and this particular issue was introduced in 8.5p1. So it only affects versions newer than that, up until when it was fixed in 9.8p1.

path: 0 10930778 10951203 10952036 11002617 11002725, hotness: undefined, score: 4, children: 0
towerful 1 point 2 years ago

For an integer, 4 < x < 6 x has to be 5. It's the only value that satisfies all sides of the equation.
You are deriving a set of values for open ssh that satisfies all sides of the equation.

I think it's more of a mathematical representation than programming representation (I mean, I don't know of a language that would accept that syntax).
Certainly psuedocode would have quick statements like this

path: 0 10930778 10951203 10952036 11002617 11002793, hotness: undefined, score: 1, children: 2
security
security

@programming.dev

login for more options
2202
173
89

A community for discussion about cybersecurity, hacking, cybersecurity news, exploits, bounties etc.

Rules :

  1. All instance-wide rules apply.
  2. Keep it totally legal.
  3. Remember the human, be civil.
  4. Be helpful, don't be rude.

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

go to feed...