Name | CVE-2023-28320 |
Description | A denial of service vulnerability exists in curl <v8.1.0 in the way libcurl provides several different backends for resolving host names, selected at build time. If it is built to use the synchronous resolver, it allows name resolves to time-out slow operations using `alarm()` and `siglongjmp()`. When doing this, libcurl used a global buffer that was not mutex protected and a multi-threaded application might therefore crash or otherwise misbehave. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
Debian Bugs | 1036239 |
Vulnerable and fixed packages
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|
curl (PTS) | jessie, jessie (lts) | 7.38.0-4+deb8u28 | vulnerable |
| stretch (security) | 7.52.1-5+deb9u16 | vulnerable |
| stretch (lts), stretch | 7.52.1-5+deb9u22 | vulnerable |
| buster, buster (lts) | 7.64.0-4+deb10u10 | vulnerable |
| buster (security) | 7.64.0-4+deb10u9 | vulnerable |
| bullseye | 7.74.0-1.3+deb11u13 | vulnerable |
| bullseye (security) | 7.74.0-1.3+deb11u14 | vulnerable |
| bookworm | 7.88.1-10+deb12u8 | fixed |
| bookworm (security) | 7.88.1-10+deb12u5 | fixed |
| sid, trixie | 8.11.1-1 | fixed |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|
curl | source | (unstable) | 7.88.1-10 | unimportant | | 1036239 |
Notes
https://curl.se/docs/CVE-2023-28320.html
Introduced by: https://github.com/curl/curl/commit/3c49b405de4fbf1fd7127f91908261268640e54f (curl-7_9_8)
Fixed by: https://github.com/curl/curl/commit/13718030ad4b3209a7583b4f27f683cd3a6fa5f2 (curl-8_1_0)
Follow-up: https://github.com/curl/curl/commit/f446258f0269a62289cca0210157cb8558d0edc3 (curl-8_1_0)
Debian binary package builds are not affected as the "curl_jmpenv" variable declaration was guarded
by a "#ifdef HAVE_SIGSETJMP", but the variable would only be used on "#ifdef USE_ALARM_TIMEOUT". For
Debian, "HAVE_SIGSETJMP" is true but "USE_ALARM_TIMEOUT" is false, and the threaded resolver is used.