Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8f96cc81ef906ace167b247fe77a20461e9dc1f4
      
https://github.com/WebKit/WebKit/commit/8f96cc81ef906ace167b247fe77a20461e9dc1f4
  Author: Youenn Fablet <[email protected]>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    A LayoutTests/fetch/fetch-empty-blob-crash-expected.txt
    A LayoutTests/fetch/fetch-empty-blob-crash.html
    M Source/WebCore/Modules/fetch/FormDataConsumer.cpp

  Log Message:
  -----------
  Use-after-free in FormDataConsumer::consume
rdar://134411748

Reviewed by Chris Dumez.

FormDataConsumer is notifying of end of load with an empty span.
Form datas can be using blobs as element, the blobs having zero data.
In this case, FormDataConsumer will send an empty span for the zero data and 
then an empty span for the end of load.
This confuses FetchBodyConsumer which then triggers a UAF.

To prevent this, we update FormDataConsumer to execute the callback when 
receiving data only if data is not empty.
An empty span is solely used to convey the end of the load.

* LayoutTests/fetch/fetch-empty-blob-crash-expected.txt: Added.
* LayoutTests/fetch/fetch-empty-blob-crash.html: Added.
* Source/WebCore/Modules/fetch/FormDataConsumer.cpp:
(WebCore::FormDataConsumer::consume):

Originally-landed-as: 280938.254@safari-7619-branch (76167250cbca). 
rdar://138929706
Canonical link: https://commits.webkit.org/285945@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to