CVE-2023-38546 Information
Description
This flaw allows an attacker to insert cookies at will into a running program using libcurl if the specific series of conditions are met.
libcurl performs transfers. In its API an application creates asy handles\nthat are the individual handles for single transfers.
libcurl provides a function call that duplicates en easy handle called curl_easy_duphandle.
If a transfer has cookies enabled when the handle is duplicated the
cookie-enable state is also cloned - but without cloning the actual
cookies. If the source handle did not read any cookies from a specific file on
disk the cloned version of the handle would instead store the file name as
none (using the four ASCII letters no quotes).
Subsequent use of the cloned handle that does not explicitly set a source to
load cookies from would then inadvertently load cookies from a file named
none - if such a file exists and is readable in the current directory of the
program using libcurl. And if using the correct file format of course.
Reference
https://curl.se/docs/CVE-2023-38546.html https://curl.se/docs/CVE-2023-38546.html This flaw allows an attacker to insert cookies at will into a running program using libcurl if the specific series of conditions are met.
libcurl performs transfers. In its API an application creates asy handles\nthat are the individual handles for single transfers.
libcurl provides a function call that duplicates en easy handle called curl_easy_duphandle.***](https://curl.se/libcurl/c/curl_easy_duphandle.html).)
If a transfer has cookies enabled when the handle is duplicated the cookie-enable state is also cloned
but
without
cloning
the
actual
cookies.
If
the
source
handle
did
not
read
any
cookies
from
a
specific
file
on
disk
the
cloned
version
of
the
handle
would
instead
store
the
file
name
as
none
(using
the
four
ASCII
letters
no
quotes).
Subsequent
use
of
the
cloned
handle
that
does
not
explicitly
set
a
source
to
load
cookies
from
would
then
inadvertently
load
cookies
from
a
file
named
none
if such a file exists and is readable in the current directory of the program using libcurl. And if using the correct file format of course.
Share on: