Urgent.News

What's breaking now, across thousands of outlets.

Tech

Dissecting House of Apple 2 on modern glibc

This report dissects House of Apple 2, an exploitation technique that functions in modern glibc versions. The technique exploits file stream structures in glibc, specifically manipulating the vtable dispatch mechanism of _IO_FILE_plus. Modern glibc validates this vtable, making a direct replacement with an arbitrary address ineffective.

House of Apple 2 bypasses this restriction by using a valid _IO_FILE_plus vtable to access the wide-character stream machinery, which has an unvalidated secondary vtable. By overwriting the vtable pointer, an arbitrary call primitive can be created, enabling a stack pivot and a ROP chain. This exploration assumes the ability to overwrite a FILE structure and possession of both a heap leak and a libc leak.

The target binary already provides these conditions. The sandbox environment used for this dissection runs Ubuntu 26.04 LTS, ensuring a modern and relevant testing ground. The binary includes an interactive menu for invoking file stream operations, facilitating debugging and experimentation. The analysis begins with an inspection of the _IO_FILE and _IO_FILE_plus structures, revealing that _IO_FILE_plus is essentially an _IO_FILE with an additional vtable pointer.

By controlling this pointer, an indirect call can be redirected, thereby hijacking control flow. The report outlines the steps taken to inspect the vtable, including breakpoint placement, breakpoint inspection, backtrace examination, and validation of the vtable pointer. It is clear that modern glibc imposes a strict range validation on the vtable pointer, making a straightforward attack impractical.

However, the report also reveals an alternative path through the wide-character stream machinery, which bypasses the range validation check. This path leads to the _IO_wdoallocbuf function, where the vtable pointer can be overwritten without validation. By satisfying certain conditions, such as setting the _lock field to a zero-initialized region of 0x10 bytes, the technique can successfully reach the _IO_wdoallocbuf function and ultimately achieve arbitrary code execution.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at jazho76.github.io →

More in Tech

Kram: A Tiny macOS Tool for Taming Chaotic Folders

I Built Kram: A File Organizer That Knows What Not to Touch My Downloads folder had become a crime scene. Hundreds of files. Random screenshots. ZIP archives. PDFs. DMGs. Old projects.

  • Kram is a macOS file organization tool
  • Categorizes files by type into sensible folders
  • CLI-first tool with future features in development

Hooking URL.createObjectURL: How My Chrome Extension Saves Instagram Voice Notes as They Play

Instagram still does not let you save voice messages from DMs. No download button, no archive, nothing. If a friend sends you a voice note worth keeping — or you hear a great sound on a Reels audio…

  • Chrome extension saves Instagram voice notes as they play
  • URL.createObjectURL function used to wrap audio content in a Blob
  • Extension intercepts process, filters audio files, creates download button

Windows vs. Linux: A 6-Month Hands-On Comparison for Techies, Gamers, and Local AI

This is not a competition between them; it is just a comparison of the pros and cons of using each. For me, I have about 6 months of experience with Arch Linux—specifically focused on running local…

  • Windows is beginner-friendly, while Arch Linux requires technical knowledge
  • Linux excels in customization and performance for AI model workloads
  • Gamers may face challenges installing pirated games on Linux

I changed nothing and my LLM server got 27% more expensive

I ran the same cost check four times in a row against a server I didn't touch. Same model, same machine, same prompts, same settings.

  • Server cost increased by 27% without any changes
  • Decrease of 11% observed after initial cost rise
  • Timing factors like processes and OS scheduling affect costs

More from Saturday 26 September →