359
submitted 9 months ago by joojmachine@lemmy.ml to c/linux@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] shadowintheday2@lemmy.world 95 points 9 months ago

"A qsort vulnerability is due to a missing bounds check and can lead to memory corruption. It has been present in all versions of glibc since 1992. "

This one amazes me. Imagine how many vulnerabilities future researchers will discover in ancient software that persisted/persist for decades.

[-] PlexSheep@feddit.de 66 points 9 months ago* (last edited 9 months ago)

That's not the main part of the article, just a footnote, for anyone wondering.

The flaw resides in the glibc’s syslog function, an attacker can exploit the flaw to gain root access through a privilege escalation.

The vulnerability was introduced in glibc 2.37 in August 2022.

[-] i18nde@lemmy.ml 9 points 9 months ago

So, it must be with the BSDs too?

[-] Rustmilian@lemmy.world 1 points 9 months ago
[-] PlexSheep@feddit.de 1 points 9 months ago

Iirc bad does not use glibc, but I'm not very involved with BSD.

[-] Tja@programming.dev 4 points 9 months ago

It wouldn't make sense. Glibc is LGPL licensed, not really compatible with the BSD license...

[-] MonkderZweite@feddit.ch -2 points 9 months ago

Wait, why has a compiler system log functionlity?

[-] StefanT@lemmy.world 22 points 9 months ago

glibc is a library, gcc is the compiler.

[-] PlexSheep@feddit.de 5 points 9 months ago

You are probably confusing the glibc with gcc and g++. Glibc is an implementation of the C standard library, made by GNU (thats where the g in the name comes from).

If you were to look into it, it uses the syscalls to tell the underlying computer system what to do when you call functions, such as printf.

If you want to read more, see here

[-] xlash123@sh.itjust.works 35 points 9 months ago

C is just crazy. You accidentally forget to put the bounds in a sorting function, and now you are root.

[-] kaputt@sh.itjust.works 6 points 9 months ago

According to the link in the article, the qsort() bug can only be triggered with a non-transitive cmp() function. Would such a cmp function ever be useful?

[-] Giooschi@lemmy.world 4 points 9 months ago

You don't necessarily have to write a non-transitive cmp() function willingly, it may happen that you write one without realizing due to some edge cases where it's not transitive.

this post was submitted on 31 Jan 2024
359 points (98.6% liked)

Linux

48335 readers
437 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS