Re: [PATCH v1] libio: validate and mangle the wide vtable

Florian Weimer <[email protected]>
Newsgroups gmane.comp.lib.glibc.alpha
Message-ID <[email protected]>
* Alessandro Schino:

> Calls dispatched through _IO_wide_data._wide_vtable (the WJUMP* macros)
> were not validated, unlike the narrow vtable which goes through
> IO_validate_vtable.  This asymmetry is the primitive used by the FSOP
> family known publicly as "House of Apple 2" / angry-FSROP: point the
> checked narrow vtable at _IO_wfile_jumps to pass the existing check,
> then hide a forged function pointer in the unchecked wide vtable,
> reached via _IO_wfile_overflow -> _IO_wdoallocbuf -> _IO_WDOALLOCATE.

I think you can just store the vtable array index there and perform a
bounds check as the validation.  There is no need to preserve any form
of ABI compatibility.

Thanks,
Florian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.