A flaw was found in libsoup. When a client sends an HTTP/2 request body from a non-pollable input stream, the library can buffer more data than the current flow-control window later allows. A malicious HTTP/2 server can shrink SETTINGS_INITIAL_WINDOW_SIZE while that buffered read is still in progress. The client then copies the full buffer into a smaller DATA callback without a runtime bounds check, which can abort the process or fail the HTTP/2 session.
Do not HTTP/2-upload from non-pollable streams (e.g. GFileInputStream) to untrusted servers. soup_message_set_request_body_from_bytes() is the pollable path. Assertions abort instead of returning an oversized length; that is not a fix.