On Fri, Feb 02, 2024 at 04:05:09PM +0000, Al Viro wrote:
> Use After Free. Really. And "untrusted" in the function name does not
> refer to "it might be pointing to unmapped page" - it's just "don't
> expect anything from the characters you might find there, including
> the presence of NUL".
Argh... s/including/beyond the/ - sorry. Messed up rewriting the
sentence.
"Untrusted" refers to the lack of whitespaces, control characters, '"',
etc. What audit_log_untrustedstring(ab, string) expects is
* string pointing to readable memory object
* the object remaining unchanged through the call
* NUL existing somewhere in that object.
All of those assertions can be violated once the object string
used to point to has been passed to kmem_cache_free(). Which is what
can very well happen to filename pointer in this case.