From Chrome Renderer Code Execution to Linux Kernel RCE via ... #1685
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Vulnerability overview (CVE-2025-38236)
The blog analyzes CVE-2025-38236, a use-after-free (UAF) in Linux ≥ 6.9 affecting
MSG_OOBsupport for stream-orientedAF_UNIXsockets. Although Chrome does not intentionally useMSG_OOB, the Linux Desktop renderer sandbox allows stream UNIX sockets and did not filter theflagsparameter tosend()/recv(), soMSG_OOBwas reachable from native re...🔧 Technical Details
AF_UNIX MSG_OOB queue manipulation to produce a UAF
The core trick is abusing the AF_UNIX
MSG_OOBdesign and themanage_oob()logic to create a danglingu->oob_skbpointer. By sending two OOB bytes and reading them withrecv(..., MSG_OOB), the attacker leaves two SKBs withunix_skb_len() == 0insk_receive_queue. Sending a third OOB byte creates an SKB3 withunix_skb_len() == 1and setsu->oob_skb = SKB3. A normalrecv()then passes throughmanage_oob(), which incorrectly assumes the next SKB after a zero‑remaining SKB has non‑zero length and returns a second zero‑length SKB tounix_stream_read_generic(). The subsequentwhile (skip >= unix_skb_len())loop skips both zero‑length SKBs without re‑invokingmanage_oob()on SKB3, so SKB3 is later freed while still referenced inu->oob...🤖 Agent ActionsSummary:
MSG_OOBdouble-zero-SKB UAF, the resulting SKB-based arbitrary read and constrained +4 GiB write primitives, allocator manipulation steps (page-table spray, pipe buffer reuse, stack recycling), timing tricks with self-looping frag lists,mprotect-based copy stalls, and the final PTE overwrite stage. Included mitigations plus references to the Project Zero post and kernel/Chromium fixes.Files Modified:
src/binary-exploitation/linux-kernel-exploitation/af-unix-msg-oob-uaf-skb-primitives.mdsrc/binary-exploitation/chrome-exploiting.mdThis PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.