22-Year-Old PostgreSQL Bug Turned into Remote Code Execution
- logophobia - 11081 sekunder sedanCorrect me if I'm wrong, but those all look like sql exploits. Don't those already require some sort of authenticated remote access. They are security issues, but calling them remote code exploitation make them seem more dangerous than they are.
These seem more like privilege escalation, you have access through a database account and use that to gain full access to the whole server. So an issue for multi-tenant databases mostly.
- jmuguy - 12731 sekunder sedanI would call this more of a privilege escalation attack than RCE.
- amluto - 2829 sekunder sedanWow, in my mind this is beyond “code smell” and into code reek!
According to the article, Postgres has an internal Datum that might be a pointer or not a pointer. Okay, this is already a bit risky.
Datum comes along with a small-integer type id. That id is stored separately, presumably for efficiency? Maybe you have lots of Datums and one id and you do this for efficiency. Okay, as long as there is a clear story for why the id stays correctly bound to the datum. The “internal” thing where a bogus AST will cause type confusion makes me think the story here isn’t great.
But then I learn that the type id is something that the code looks up in a system table in the database. I’m speechless. This is the kind of thing that can’t be represented in any safe language because the indication of whether a value is a pointer isn’t even in application memory.
Eww. Maybe the AIs can exhaustively enumerate every code path that might get it wrong and rule them all out in a particular release. Maybe there’s even a Lean program that can verify it. But this is still the kind of design that is wrong by construction and is only okay if every single detail avoids the giant foot-cannon.
- igbanam - 15805 sekunder sedanThanks for actually sharing your path to the zero-day. The context and story helps
- - 10404 sekunder sedan
- NeuraCryption - 13892 sekunder sedanIs this exploitable? If it is, this is very serious and if this is an unpatched disclosure millions of Businesses around the world will be affected.
- sailfast - 12905 sekunder sedanAmazing write-up. A great look at DB internals and your thought process.
- ozirus - 21436 sekunder sedan[flagged]
- shellctl - 14784 sekunder sedan[flagged]
Nördnytt! 🤓